Python: как прочитать все содержимое текстового файла в нескольких папках и сохранить их в один файл Excel - PullRequest
2 голосов
/ 30 сентября 2011

Я сейчас работаю над этой задачей и застрял.Пожалуйста, дайте мне свои советы.Код, который я пишу ниже, возвращает только имя файла .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'

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

Если вы хотите записать содержимое файла, вы должны вместо этого сделать

with open(os.path.join(dir, file), "r") as source:
    L= source.read()

Это гарантирует, что файл фактически закрыт, когда вы закончите их читать. Это высвобождает системные ресурсы.

2 голосов
/ 30 сентября 2011

Ну, вы видите имена файлов, потому что вы пишете их. L содержит имя файла. (И L = file.strip() кажется мне ненужным.)

Если вы хотите записать содержимое файла, вы должны вместо этого сделать L = open(os.path.join(dir, file), "r").read().

...