上一篇介绍了Python对文件的读写操作,现在来介绍一下Python对文件夹的操作。由于我是项目中用到的,所以我就以我的实际应用实例来说明吧。希望对大家有所帮助。
1、实例需求:
现在有一个文件夹myDir,该文件夹中又有n个文件夹dir1,Dir2, ..., dirN,每个文件夹中又有m个文件,这个实例需要达到的目的就是要将这n个文件夹dir1,Dir2, ..., dirN中的所有文件全部写到一个新文件中,该新文件在文件夹myDir下。2、源代码:
test.py代码如下:import os #导入操作文件夹需要的os模块
def linkFilesInDirs(rootDir, outputFile): #定义函数,参数为要操作的根文件夹,和最后要输出的新文件
fw=open(outputFile, 'w') #以写方式打开文件
for dirName in os.listdir(rootDir): #列出rootDir目录下的所有文件夹和文件,并遍历结果
if os.path.isdir(dirName): #判断该结果是否是文件夹
print 'process in dir: %s'%dirName
for fileName in os.listdir(dirName): #如果该结果是文件夹,则列出其目录下的所有文件并遍历
if not os.path.isdir(fileName): #判断是否是文件,只有是文件才被处理
fr=open(os.path.join(dirName,fileName), 'r') #以读的方式打开该文件
for eachLine in fr: #遍历该文件的每一行
line = eachLine.strip().decode('utf-8', 'ignore')
outStr = line
fw.write(outStr.strip().encode('utf-8') + '\n') #将内容写入到一个新的文件中
fr.close()
fw.close()
linkFilesInDirs('myDir', 'newFile.txt')
注意:1、第5行的listdir函数不仅仅列出了该文件夹下的所有文件夹,还列出了所有文件; 2、第10行中,调用了join函数,是将文件所在的文件夹和文件名连接起来,这样就形成了文件的路径,按照路径来读取该文件。
同样是在Linux下操作的,代码写完之后,输入:python test.py 就可以运行该程序了。