对不起,我是Python 3的新手,我已经在这里一直在寻找答案,但是我找不到我问题的具体答案,而是我可能没有问正确的问题。
我有一个名为test5.txt的文件,其中我编写了要使用Python打开/读取的文件的文件名(即test2.txt,test3.txt和test4.txt),这些txt文件具有随机性上面的文字。
这是我的代码:
with open("test5.txt") as x:
my_file = x.readlines()
for each_record in my_file:
with open(each_record) as y:
read_files = y.read()
print(read_files)
可惜我遇到了错误:"OSError: [Errno 22] Invalid argument: 'test2.txt\n'"
答案 0 :(得分:2)
建议使用rstrip
而不是strip
-为了安全和明确,更好。
for each_record in my_file:
with open(each_record.rstrip()) as y:
read_files = y.read()
print(read_files)
但是使用str.splitlines
方法,这应该也可以工作,并且可能会更漂亮-请参见这篇帖子here。
with open("test5.txt") as x:
list_of_files = x.read().splitlines()
答案 1 :(得分:0)
似乎each_record
包含换行符\n
。您可以尝试先删除文件名字符串,然后再将其作为文件打开。
with open("test5.txt") as x:
my_file = x.readlines()
for each_record in my_file:
with open(each_record.strip()) as y:
read_files = y.read()
print(read_files)