之前给程序申请著作权时候用过建飞的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
you lust for my life, darkness and light