使用名称列表在 python 中打开多个文件
Posted
技术标签:
【中文标题】使用名称列表在 python 中打开多个文件【英文标题】:using a list of names to open multiple files in python 【发布时间】:2020-05-21 14:16:42 【问题描述】:我想使用名称列表打开多个文件,这样打开的文件的名称也将包含列表中的名称,如下所示:
List = ["Sin", "Cos", "Tan"]
for x in List:
df_x = pd.read_csv("C:\\Users\\gtala\\OneDrive\\Desktop\\TIME AI\\NIST_Tests\\constants\\x.txt")
所以我希望x
替换文件名和目录中的x
,这样最终我会从Sin.txt
打开df_Sin
,从df_Cos
打开df_Cos
,等等。
谢谢。
【问题讨论】:
【参考方案1】:import pandas as pd
List = ["Sin", "Cos", "Tan"]
base="C:\\Users\\gtala\\OneDrive\\Desktop\\TIME AI\\NIST_Tests\\constants\\"
df =
for x in List:
df[x] = pd.read_csv(base + x +".txt")
在上面的字典df中,使用df['Sin']来访问Sin变量,例如,如下:
print df['Sin']
【讨论】:
我喜欢这个,因为我需要 for 循环对每个数据帧进行操作。但是,每个 df 的名称不会被修改以包含列表中的名称。例如,当我询问 df_Sin 时,我收到一条错误消息,名称为“'df_Sin' is not defined” 当然,我已经修改了答案以使用字典,该字典将每个结果存储在“Sin”、“Cos”和“Tan”分配中。【参考方案2】:map
f = "C:\\Users\\gtala\\OneDrive\\Desktop\\TIME AI\\NIST_Tests\\constants\\.txt".format
list(map(pd.read_csv, map(f, ["Sin", "Cos", 'Tan'])))
【讨论】:
【参考方案3】:您可能会发现将其存储在字典数据结构中会很有用。
path = "C:\\Users\\gtala\\OneDrive\\Desktop\\TIME AI\\NIST_Tests\\constants"
file_names = ["Sin", "Cos", "Tan"]
df_dict = f"df_x": pd.read_csv(f"path//x.txt") for x in file_names
然后您可以使用
访问感兴趣的数据框df_dict['df_Sin']
【讨论】:
我认为这是正确的方法。 2 条使其更简洁的建议:使用新的字符串插值:f"df_x"
而不是format
(与文件路径相同)并将目录路径另存为 dict 外部的变量以使其更简洁
所以path = "C:\\Users\\gtala\\OneDrive\\Desktop\\TIME AI\\NIST_Tests\\constants"
在外面然后我们有df_dict = f"df_x: pd.read_csv(f"path//x.txt" for x in file_names
啊,看起来不错。我以前没有真正使用过字符串插值,谢谢指出!如果您愿意,欢迎您进行编辑?以上是关于使用名称列表在 python 中打开多个文件的主要内容,如果未能解决你的问题,请参考以下文章
获取在 OSX 上的应用程序中打开的文档的名称(python)