Python 如何读取文件夹中的所有文本文件内容,并将这些内容作为行复制到一个excel文件中
我在一个文件夹中有100个txt文件(名为pos)。我想复制所有文件内容并将它们粘贴为excel文件中的行。我从stackoverflow中找到了一些代码,但它们不起作用。请帮帮我Python 如何读取文件夹中的所有文本文件内容,并将这些内容作为行复制到一个excel文件中,python,xlwt,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 fi
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')
下面的程序适合我 注:
被解释为选项卡,而不是路径分隔符。尝试使用前斜杠'\t'
- 它是
/import-fnmatch
<代码>全局不是必需的fnmatch.fnmatch(模式、文件)
- 我不得不从字符串中删除尾随的换行符。在我的测试用例中,使用
就足够了。您可能需要一个更健壮的解决方案L[:-1]
返回一个元组:os.walk()
(目录、子目录、文件)
- 我已经在注释中留下了调试语句,以防它们对您有所帮助
一个问题是
\t
被解释为制表符。使用原始字符串:r'C:\tweet\pos'
或正斜杠:C:/tweet/pos
或转义反斜杠:C:\\tweet\\pos
什么是“不工作”?相反会发生什么?您还导入了glob
,但没有使用它。而且没有导入fnmatch
同样,您是否将其粘贴到文件中?当以交互方式运行python时,“…”字符是提示的一部分。如果您在.P.s.中键入它们,它们将导致错误。专家们:是否有一个Pythonic表达式可以为所有os.path.join(dir,file)
结果生成一个列表或生成器?(例如,['./foo'、'./sub/bar'、'./sub/bar2'、'./sub2/bar']
?答案是:(os.path.join(dir,file)表示dir,dirs,os.walk中的文件('.')表示文件中的文件)
。请参阅
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')