Python3.x: TypeError: expected str, bytes or os.PathLike object, not list
Python3.x: TypeError: expected str, bytes or os.PathLike object, not list
我在一个文件夹中有很多文本文件。每个文本文件都有两个值,它们分别写在不同的行中(使用 .write 函数中的 \n\ )。看起来像下面这样。
0.907831
0.992549
我想创建一个主 excel 文件,其中合并了我的文本文件中的所有值(而不是手动输入)。
所需的输出如下所示。
'Filename' 0.907831 0.992549
到目前为止,我有以下代码。
import xlwt
import os
import fnmatch
path='Z:\Data-output'
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('data')
row = 0
for files in os.walk(path):
for file in files:
if fnmatch.fnmatch(file, '*.txt'):
L = open(os.path.join( file), "r").read()
sheet.write(row,5,L)
row += 1
wbk.save('all_values_in_txt.xls')
目前运行进入以下错误(如下)。关于如何 improve/fix 代码的任何想法?
File "<ipython-input-81-ddeb0284f378>", line 17, in <module>
if fnmatch.fnmatch(file, '*.txt'):
File "C:\Users\JohnDoe\Anaconda3\lib\fnmatch.py", line 34, in fnmatch
name = os.path.normcase(name)
File "C:\Users\JohnDoe\Anaconda3\lib\ntpath.py", line 48, in normcase
s = os.fspath(s)
TypeError: expected str, bytes or os.PathLike object, not list
os.walk
returns 一个 3 项元组的列表,因此在遍历列表时需要解包元组:
for root, _, files in os.walk(path):
for file in files:
if fnmatch.fnmatch(file, '*.txt'):
L = open(os.path.join(root, file), "r").read()
sheet.write(row,5,L)
row += 1
请阅读os.walk
's documentation了解更多详情。
我在一个文件夹中有很多文本文件。每个文本文件都有两个值,它们分别写在不同的行中(使用 .write 函数中的 \n\ )。看起来像下面这样。
0.907831
0.992549
我想创建一个主 excel 文件,其中合并了我的文本文件中的所有值(而不是手动输入)。
所需的输出如下所示。
'Filename' 0.907831 0.992549
到目前为止,我有以下代码。
import xlwt
import os
import fnmatch
path='Z:\Data-output'
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('data')
row = 0
for files in os.walk(path):
for file in files:
if fnmatch.fnmatch(file, '*.txt'):
L = open(os.path.join( file), "r").read()
sheet.write(row,5,L)
row += 1
wbk.save('all_values_in_txt.xls')
目前运行进入以下错误(如下)。关于如何 improve/fix 代码的任何想法?
File "<ipython-input-81-ddeb0284f378>", line 17, in <module>
if fnmatch.fnmatch(file, '*.txt'):
File "C:\Users\JohnDoe\Anaconda3\lib\fnmatch.py", line 34, in fnmatch
name = os.path.normcase(name)
File "C:\Users\JohnDoe\Anaconda3\lib\ntpath.py", line 48, in normcase
s = os.fspath(s)
TypeError: expected str, bytes or os.PathLike object, not list
os.walk
returns 一个 3 项元组的列表,因此在遍历列表时需要解包元组:
for root, _, files in os.walk(path):
for file in files:
if fnmatch.fnmatch(file, '*.txt'):
L = open(os.path.join(root, file), "r").read()
sheet.write(row,5,L)
row += 1
请阅读os.walk
's documentation了解更多详情。