4

フォルダー (pos という名前) に 100 個の txt ファイルがあります。すべてのファイルの内容をコピーして、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 に答える