4

我在一个文件夹中有 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')
4

1 回答 1

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')
于 2013-02-19T17:58:11.650 回答