首页 > 解决方案 > 当我将文件名存储在列表中时,在 python 中打开多个文件的最佳方法是什么?

问题描述

我正在处理大量数据,这些数据可以分类为写入多个文件之一。我试图一次打开所有文件,以便在浏览数据时写入文件(我正在使用 Python 3.7)。

我可以做多个 with open(...) as ...语句,但我想知道是否有一种方法可以做到这一点,而不必为每个文件写出打开的语句。

我正在考虑使用 for 循环打开文件,但听说这不是异常安全的,而且是不好的做法。

那么您认为打开多个文件名存储在列表中的文件的最佳方法是什么?

标签: python

解决方案


我通常使用globanddict这样做。这将假设您的数据是 .csv 格式,但对这个想法并不重要:

您可以使用glob所有文件创建一个变量。假设它们位于Data主文件夹内的一个文件夹中:

 data=glob.glob('Data/'+'*.csv') #Put every .csv file into a list 
 #you can change .csv with wathever you need
 dict_data={} #Create empty dictionary

for n,i in enumerate(sorted(data)):

    dict_data['file_'+str(n+1)]=pd.read_csv(i)

在这里您可以替换为您的with...open声明。最后,您将获得一个dictwith keys file_1,...,file_n这将包含在您的数据中。我发现它是处理大量数据的最佳方式。但是,如果您使用的数据类型不止一种,则可能需要进行一些修改。

希望能帮助到你


推荐阅读