把所有文件汇入到一个文件中

  之前给程序申请著作权时候用过建飞的py程序, 我也顺带从中学到很多, 自己玩了一阵子:

#!/usr/bin/env python
# encoding: utf-8

import os
#import os.path

print('print')
yourdir = os.path.abspath('./testdir')
print(yourdir)
#yourdir可以用绝对路径,或相对路径
for parent, dirnames, filenames in os.walk(yourdir):
#    三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
#    parent 当前遍历到的目录的跟
#    dirnames 当前遍历到的目录的根下的所有目录
#    filenames 当前遍历到的目录的根下的所有文件
    print(parent, dirnames)
    for filename in filenames:      #默认的文件名
        yourfile = os.path.join(parent, filename)
        with open(yourfile, 'r') as f:
            data = f.read()
        with open('out.md', 'a+') as w:
            w.write("# " + yourfile)
            w.write("\n```\n")
            w.write(data)
            w.write("\n```\n")

这样就可以把不同文件写入一个文件中,并且按照一定的分割方式.

  今天看书的时候顺带看到一句关于cat的用法, 可以将用户键入的所有内容导入一个文件中. 练习使用, 顺便复习文件重定向.

  先介绍cat指令, 

  
A:查看文件内容主要用法:
1、cat f1.txt,查看f1.txt文件的内容。
2、cat -n f1.txt,查看f1.txt文件的内容,并且由1开始对所有输出行进行编号。
3、cat -b f1.txt,查看f1.txt文件的内容,用法与-n相似,只不过对于空白行不编号。
4、cat -s f1.txt,当遇到有连续两行或两行以上的空白行,就代换为一行的空白行。
5、cat -e f1.txt,在输出内容的每一行后面加一个$符号。
6、cat f1.txt f2.txt,同时显示f1.txt和f2.txt文件内容,注意文件名之间以空格分隔,而不是逗号。
7、cat -n f1.txt>f2.txt,对f1.txt文件中每一行加上行号后然后写入到f2.txt中,会覆盖原来的内容,文件不存在则创建它。
 
B:创建文件以及写入文件内容的用法:
注意:创建文件的时候要设置文件结束标志,也就是<<EOF,可以把EOF换成别的字符,注意是大小写敏感的,当文件内容写完之后要输入结束标志EOF,这时命令会正确结束,表示成功创建文件并且写进内容。
8、cat -n f1.txt>>f2.txt,对f1.txt文件中每一行加上行号后然后追加到f2.txt中去,不会覆盖原来的内容,文件不存在则创建它。
C:追加文件内容的用法:
注意:与创建文件内容不同的是符号单边号>变成了双边号>>。
D:文件合并的用法:
把文件f2.txt,f3.txt,f4.txt的文件内容写入到f1.txt中,如果f1.txt文件以前有内容,则先会清除它们然后再写入合并后的内容。
如果不想清除文件内容,则可以把单边号>变成了双边号>>
附:
cat命令的全称:
concatenate files and print on the standard output
 
因此, 如果用cat指令的话,可以这样解决这个问题
cat ArTimeToROSTime.h LaserPublisher.cpp LaserPublisher.h > a.txt
//将ArTimeToROSTime.h LaserPublisher.cpp LaserPublisher.h这三个文件写入到a.txt中

另外, 如果想要在文件末尾加变换, 用文件重定向>>"add your text", 但是要把其他的改为追加. 

 


discuss with dashen, he told me that cat is not so easy to use. because the python code could look through all the file include the file in subdir. so smart

 

my sougou pinyin cannot useTT
 
 
 
 

转载于:https://www.cnblogs.com/feixiao5566/p/5333835.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值