如何在Python中使用循环打开多个文件

6

我是Python的初学者。

我希望在Python中打开多个文件。我可以使用open()函数逐个打开它们。

但我不确定如何进行格式化。

with open("/test/filename.css", "r") as f:
     s = f.readlines()
     print(s)

我可以打开一个文件,但不确定如何打开多个文件。 这是我拥有的代码。在live_filename() 函数中有很多文件。

inputfiles = live_filename()
    for live in inputfiles:
        with open("/test/............. .css, "r") as f:

我不知道如何在代码格式中添加空格。 我认为live变量是一个元组,无法连接字符串。我该怎么办?


请编辑您的问题,通过print函数打印live_filename()的返回值来包含一个样本输入。 - Selcuk
@Selcuk 我该怎么办? - user12117808
@lalin 编辑你的问题,展示给我们 print(inputfiles) 的结果。 - OverLordGoldDragon
2个回答

5

像处理单一文件那样打开每个文件,然后把它们附加到列表中:

import os

folderpath = r"D:\my_data" # make sure to put the 'r' in front
filepaths  = [os.path.join(folderpath, name) for name in os.listdir(folderpath)]
all_files = []

for path in filepaths:
    with open(path, 'r') as f:
        file = f.readlines()
        all_files.append(file)

现在,all_files[0]包含第一个加载的文件,all_files[1]包含第二个加载的文件,以此类推。
更新:对于同一文件夹中的所有文件:首先,获取文件夹路径(在Windows上,像这样)。假设它是"D:\my_data"。然后,您可以像上面的脚本一样获取所有文件的文件路径

@lalin 只需确保 filepaths 包含您计划加载的所有文件路径 - 您可以通过 print(filepaths) 进行检查。如果是这样,就不需要重复了。 - OverLordGoldDragon
我明白了。我会尝试的。 :) - user12117808
@ 好的,我会再试一次。 :) - user12117808
我能做到。非常感谢:))))) - user12117808
@lalin 恭喜。考虑接受答案。 - OverLordGoldDragon
显示剩余3条评论

1
你可以这样做:

folder = "..." # Absolute path to folder in which the files reside
files_to_read = [("filename.css","FileName"),( "filename2.css","Filename2")]
for (file, _) in files_to_read:
    filepath = os.path.join(folder, file)
    with open(filepath, "r") as f:
        s = f.readlines()
        print(s)

我明白了,但如果我有100个文件,我该怎么办? - user12117808
@lalin 这些文件都在 同一个文件夹 中吗? - OverLordGoldDragon
@OverLordGoldDragon 是的,在同一个文件夹中。 - user12117808
@lalin 你希望它并行处理吗?你从一个函数中接收文件路径对吧?能否展示一下 live_filename() 的样本输出? - MjZac
@MjZac 是的,我从一个函数中接收到文件路径。 输出为: ('home','主页') ('fun','娱乐') - user12117808
然后就是 for (file, _) in live_filename(): - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接