在Python中创建一个名为文件的变量

2024-04-26 13:54:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几百个.txt文件,我需要加载,而不是为每一个输入变量,我想一个自动化的过程,这将为每个.txt文件创建一个变量,例如

Test.txt, Test1.txt and Test2.txt给出变量Test, Test1, Test2

随后我将把每个.txt文件加载到相应的变量中

Test = glob.glob('Test.txt')
Test1 = glob.glob('Test1.txt')
Test2 = glob.glob('Test2.txt')

我可以创建一个包含所有文件名和“.txt”主题条带的列表,例如['Test', 'Test1', 'Test2'],但我不确定如何(甚至可能)将列表中的项转换为变量。你知道吗

我试着四处阅读,发现global()exec()可能有用,但我从未使用过它们,也看到很多人警告说不要使用这些工具,因为他们渴望获得更有经验的输入。你知道吗

提前谢谢


Tags: and文件testtxt警告主题列表文件名
3条回答

为什么要这样命名变量?你知道吗

相反,您应该创建一个字典,使用列表的元素作为键。像这样:

keys = ['Test', 'Test1', 'Test2']
dict.fromkeys(keys, 0)

此代码将为您提供以下词典:

{'Test': 0, 'Test1': 0, 'Test2': 0}

不要从字符串创建变量名。事实上,理解所有*变量都是某个名称空间的actually dictionary keys themselves是很有启发性的。你知道吗

在您的情况下,您可以设置类似于以下内容的词典:

d = {'Test'+str(i): glob.glob('Test'+str(i)+'.txt') for i in range(3)}

*但请参见@胡安帕.阿里维拉加. 你知道吗

感谢你的回答,我不知道字典是如此强大,基于这里的建议和一位训练有素的物理学家朋友的建议:

files = {f.replace(".txt", ""): open(f, "r").read() for f in glob.glob('*.txt')}

然后,我可以通过以下方式访问和处理数据:

files['filename']

相关问题 更多 >