Python 3.x 如何打开多个文件路径?

Python 3.x 如何打开多个文件路径?,python-3.x,read-write,file-link,Python 3.x,Read Write,File Link,我现在有了一个文件,其中有一个文件路径列表。我想循环打开它们读写。有人能建议怎么做吗?到目前为止,我所看到的只是读取这些行并打印出来,我希望我的代码能够打开这些路径。下面是路径文件的一部分: E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496340.txt E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a949634

我现在有了一个文件,其中有一个文件路径列表。我想循环打开它们读写。有人能建议怎么做吗?到目前为止,我所看到的只是读取这些行并打印出来,我希望我的代码能够打开这些路径。下面是路径文件的一部分:

E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496340.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496341.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496342.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496343.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496344.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496345.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496346.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496347.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496348.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496349.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496350.txt
E:\Grad\LIS\LIS590 Text mining\Part1\Part1\awards_1994\awd_1994_96\a9496351.txt
...
这是我正在尝试的代码:

def work_on(r'E:\Grad\LIS\LIS590 Text mining\file+test.txt'):  # The last quotation mark gives me that error. I also tried double quotation mark, didn't work either.
    with open(r'E:\Grad\LIS\LIS590 Text mining\file+test.txt', 'r') as data_file:

with open('file_list.txt', 'r') as file_list:    #file_list.txt is the file name I saved all the paths.
    for filename in file_list:
        with open(filename, 'r') as data_file:
            work_on(filename)

一般流程与打印行相同-唯一的区别是不使用
print()
您将执行其他工作(在本例中,打开文件并使用它):

然后,如果有意义,您可以将第二项工作分解为单独的函数:

def work_on(data_file_path):
    with open(data_file_path, 'r') as data_file:
        # work with data_file here
这将使您的工作循环简化为:

with open('/your/file/list.txt', 'r') as file_list:
    for filename in file_list:
        work_on(filename)

谢谢你的建议。我刚开始学习Python,所以我对这段代码有几个问题。首先,上面使用的“/your/file/list.txt”和数据文件路径之间有什么区别?还有,这些部分是如何组合的?@Q-ximi-
your/file/list.txt
是您在问题中提供的一部分文件列表。当你在一个打开的文件上迭代时,你每次迭代得到一行(例如,
对于文件中的行
),因此
数据文件路径
是你数据列表中的一个条目。谢谢你的澄清。我想这是相当基本的,但我不确定我是否以正确的方式将代码组合在一起。它不断给我一条错误消息:“SyntaxError:EOL while scanning string literal”,用于
def
行后面的单引号。我在帖子中更新了代码。谢谢。@Q-ximi-函数定义不应该有字符串文字,因为它的参数名是:-)定义的要点是定义一个函数,该函数使用将在函数体中使用的参数。所以
def work\u on(某些参数)
,而不是
def work\u on(“某些值”)
。这有意义吗?@Q-ximi-我回答中的第三个代码块是如何将它们组合在一起:-)您只需要在这里填写
#使用数据(work with data)文件
块。尝试在一个文件中使用块#2和#3,只需对#工作使用
打印(数据文件路径)
。我的问题是我不知道该使用哪个函数。现在正在阅读输入和输出,但还没有弄清楚它们是否正确。下面肖恩·维埃拉的例子回答了您的问题。感谢您的澄清。我想这是相当基本的,但我不确定我是否以正确的方式将代码组合在一起。它不断给我一条错误消息:“SyntaxError:EOL while scanning string literal”作为defline后面的单引号。我在帖子中更新了代码。谢谢
with open('/your/file/list.txt', 'r') as file_list:
    for filename in file_list:
        work_on(filename)