运行下面的代码时,我收到一条错误消息,上面说“TypeError:expected str,bytes或os.PathLike object,not list”
我使用Spyder调试了上面的错误消息,但是我找不到错误。 有人能告诉我如何解决这个错误吗?代码如下所示
谢谢大家!
J1 = ['520A','520B']
J2 = ['560S','580A']
JOINTS = J1 + J2
FILES_IN = ['dynres-x-eqk.lst','dynres-y-eqk.lst','dynres-z-eqk.lst']
FILE_OUT = ['_Accelerations.txt']
def joint_acc(joint, file_in):
output = []
with open(file_in, 'rt') as f_in:
for line in f_in:
if 'JOINT ACCELERATIONS' in line:
for line in f_in:
if line.startswith(joint):
while line.strip() != '':
output.append(line)
line = next(f_in)
break
return ''.join(output)
with open(FILE_OUT, 'wt') as f_out:
for Jt in JOINTS:
for filename in FILES_IN:
f_out.write(joint_acc(Jt, filename))
f_out.write('\n')
你做到了:
然后:
所以这个
open
得到list
,它导致TypeError
。尝试用FILE_OUT = '_Accelerations.txt'
替换FILE_OUT = ['_Accelerations.txt']
您的
FILE_OUT
变量是list
类型,但是open
等待str
、bytes
或os.PathLike
对象类型您应该将
FILE_OUT
变量转换为正确的类型例如字符串:
或者您可以使用
0
索引访问列表的第一个元素(您的列表只有1个元素)像这样:
相关问题 更多 >
编程相关推荐