如何读取文件夹中的所有文本文件内容并将这些内容作为行复制到一个excel文件中

时间:2013-02-19 17:37:52

标签: python xlwt

我在一个文件夹中有100个txt文件(名为pos)。我想复制所有文件内容并将它们作为行粘贴到excel文件中。我从stackoverflow中找到了一些代码,但它们无法正常工作。请帮帮我。

import xlwt
import os
import glob

wbk = xlwt.Workbook()
sheet = wbk.add_sheet('data')
path= 'C:\tweet\pos'
row = 0

for files in os.walk(path):
...     for file in files:
...         if fnmatch(file, '*.txt'):
...             L = open(os.path.join( file), "r").read()
...             sheet.write(row,5,L)
...             row += 1
...             

wbk.save('read_all_txt_in_folders.xls')

1 个答案:

答案 0 :(得分:2)

以下程序适合我。

注意:

  • '\t'被解释为选项卡,而不是路径分隔符。尝试使用正斜杠。
  • import fnmatch / fnmatch.fnmatch(pattern, file)
  • 不是必需的glob
  • 我不得不从字符串中删除尾随的换行符。在我的测试用例中,使用L[:-1]就足够了。您可能需要更强大的解决方案。
  • os.walk()返回一个元组:(directory, subdirectories, files)
  • 我已将评论语句留在评论中,以防他们为您提供帮助。

import xlwt
import os
import fnmatch

wbk = xlwt.Workbook()
sheet = wbk.add_sheet('data')
row = 0

# sheet.write(1, 1, "Hello")

for (dir, dirs, files) in os.walk('.'):
     # print dir
     for file in files:
         # print " ", file
         if fnmatch.fnmatch(file, '*.txt'):
             L = open(os.path.join(dir, file), "r").read()
             # print "  ", L.__repr__()
             a = sheet.write(row,5,L[:-1])
             # sheet.write(row, 4, "hello")
             # print "   ", a
             row += 1

wbk.save('read_all_txt_in_folders.xls')