我目前正在完成这项任务并陷入困境。请给我你的意见。我在下面写的代码,它只返回多个文件夹中的.txt文件名,而我想打印出每个.txt文件的内容并保存在excel的不同行中。每个.txt文件的内容都是数字。
import os, glob,xlwt
#create workbook and worksheet
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('data')
path= 'E:\Cag\Data'
row = 0
for dir,subdir,files in os.walk(path):
for file in files:
if glob.fnmatch.fnmatch(file, '*.txt'):
L = file.strip()
sheet.write(row,5,L)
row += 1
wbk.save('read_all_txt_in_folders.xls')
print 'success'
答案 0 :(得分:2)
嗯,你看到了文件名,因为你写了它们。 L
包含文件名。 (L = file.strip()
对我来说似乎没用。)
如果你想写文件内容,你应该改为L = open(os.path.join(dir, file), "r").read()
。
答案 1 :(得分:2)
如果你想写文件内容,你应该改为
with open(os.path.join(dir, file), "r") as source:
L= source.read()
这可以确保在您阅读完文件后实际关闭该文件。这释放了系统资源。