【问题标题】:Open up multiple files in a folder in python for read/write在python中打开一个文件夹中的多个文件以进行读/写
【发布时间】:2014-03-02 15:07:40
【问题描述】:

因此,如果我有一个数据文件夹,其中包含 15 个 txt 文件,我如何在一个函数中同时打开多个 txt 文件并在另一个函数中打开另一个数据文件夹?

所以我写了这个:

with open("data/datafile.csv" , "r") as f :
    reader = csv.reader(f) 
    return list(reader)

那么我怎样才能做同样的事情,但同时处理多个文件呢?

【问题讨论】:

  • 查看fileinput 模块。

标签: python csv file-io python-3.x


【解决方案1】:

如果可以不真正在同一时间完成所有操作,您所能做的就是将您的阅读放入它自己的函数中(即read_csv),然后将所有 txt 文件放入一个目录并为您在目录中找到的每个文件调用您的函数:

import os
def read_all_files(directory);
    return [read_csv(f) for f in os.listdir(directory) if f.endswith(".txt")]

这将为传递的目录中以“.txt”结尾的每个文件调用一个函数read_csv,并将其全部放入一个返回的大列表中。

【讨论】:

  • 好的,但是我如何在一个函数中打开一组文件并在另一个函数中打开另一组文件?假设我有 15 个文件都是 txt 并且我需要它们在同一个目录中?有没有办法专门针对一个函数中的文件 1-5 和另一个函数中的文件 6-10 和另一个函数中的文件 11-15?目前,我对如何做到这一点的唯一理解是文件中是否有某些信息按比例增加。就像我的文件都有关于海洋深度的上升数据列表一样,我可以设置它,以便我只查看特定深度的文件。 (例如,如果 ocean_depth
【解决方案2】:

如果同时打开更多文件很重要,那么:

with open("data/datafile.csv" , "r") as f:
  with open("data/datafile2.csv" , "r") as f2:
    f.read()
    f2.read()

f = open("data/datafile.csv" , "r")
f2 = open("data/datafile2.csv" , "r")
f.read()
f2.read()
f.close()
f2.close()

【讨论】:

    猜你喜欢
    • 2011-10-02
    • 2019-02-17
    • 2019-02-14
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多