Python 将多个CSV文件导入具有相同名称的变量

Python 将多个CSV文件导入具有相同名称的变量,python,csv,import,Python,Csv,Import,一个目录中有多达1440个文件要用Python读取。文件名具有如下模式: HMM_1_1_.csv HMM_1_2_.csv HMM_1_3_.csv HMM_1_4_.csv ... 对于HMM_i_j_.csv,i从1变为144,j从1变为10 如何将它们导入一个名为HMM\u I\u j的变量中,该变量与其原始名称类似 例如,HMM_140_8_.csv应作为变量导入HMM_140_8而不是将它们放入具有此名称的变量中,您可以创建一个字典,其中键是名称减去“u.csv”,值是文件的内容

一个目录中有多达1440个文件要用Python读取。文件名具有如下模式:

HMM_1_1_.csv
HMM_1_2_.csv
HMM_1_3_.csv
HMM_1_4_.csv
...
对于
HMM_i_j_.csv
i
从1变为144,
j
从1变为10

如何将它们导入一个名为
HMM\u I\u j
的变量中,该变量与其原始名称类似


例如,
HMM_140_8_.csv
应作为变量导入
HMM_140_8

而不是将它们放入具有此名称的变量中,您可以创建一个字典,其中键是名称减去“u.csv”,值是文件的内容

以下是步骤,我让您了解如何准确执行每个步骤:

  • 创建一个空字典
  • 回路i从1到144,j从1到10
  • 如果存在相应的文件,请读取该文件并将其内容放在字典中相应的键处

您可以通过使用熊猫和字典来实现这一点。以下是可能实现您所需功能的脚本

为了在python环境中访问特定的csv文件,只需使用csv[HMM_5_7]

import pandas as pd
csv = {}
for i in range(1, 145):
    for j in range(1, 11):
        s = 'HMM_{}_{}'.format(i,j) 
        csv[s] = pd.read_csv(s+'.csv')
或:(较短)

或可读性较差的单行线:

d = {'HMM_{}_{}'.format(i//10+1,i%10+1):
     pd.read_csv('HMM_{}_{}.csv'.format(i//10+1,i%10+1)) for i in range(1440)}

换句话说,您需要动态地声明一个变量名
?可能与您已经尝试过的内容重复?包括您的非工作代码。如果您甚至还没有编写任何代码,那么我建议您在CSV reader上查看Python文档。对于变量分配,您可以将这些CSV加载到具有根据索引进行操作,例如,
dict[“144_1”]
可能的副本您不需要熊猫,有一个内置的csv模块。@LouisSugy谢谢。刚刚写下了我想到的第一件事。谢谢您,Anton和kaanyilmaz,写得很好。
d = {'HMM_{}_{}'.format(i//10+1,i%10+1):
     pd.read_csv('HMM_{}_{}.csv'.format(i//10+1,i%10+1)) for i in range(1440)}