使用For循环(Python 3)打开文件

时间:2018-10-06 06:02:54

标签: python python-3.x

对不起,我是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'"

2 个答案:

答案 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)