Python: 如何创建文件名的变量?
Python: How to create a variable of the file name?
我有数千个包含很长文本块的文本文件(每个文件大约 200kb - 600kb)。我想将每个文件的内容存储在一个单独的变量中,以便更容易识别它我想将它们存储在一个与文件名相同的变量中。假设文件 'dog.txt' 中有一个文本,我想将其内容存储在变量 'dog' 中。
有可能吗?如果没有,我可以使用字典,但它能容纳那么多吗?或者有其他选择吗?
PS:请停止投票:P 我意识到我的错误。
这里有字典的开销可以忽略不计。如果你能处理一个 600K 的字符串,你也可以将它放入字典中。所以你应该只使用从文件名到它的内容的字典:
files = {'dog.txt' : 'Lorem ipsum dolor sit amet', 'cat.txt' : 'meow'}
您可以通过将文件读入字典来解决此问题,其中键是不带 .txt 扩展名的文件名,值是文件内容。像这样的东西会起作用:
filenames = ['bird.txt', 'cat.txt', 'dog.txt']
data = {}
for name in filenames:
with open(name) as f:
key = name.partition('.')[0]
data[key] = f.read()
您可以通过在数据字典中查找文件名来访问文件内容:
contents_of_dog_file = data['dog']
你能做的最好的事情就是使用字典。但是您也可以使用 "exec()" 在现场创建变量,尽管字典是它的正确工具。假设您的所有文件都不以数字开头,也不包含变量名称的任何无效字符:
import os
fileNames = os.listdir(os.path.join(os.getcwd(), 'subfoldername'))
for fName in fileNames:
f = open(fName, 'r')
exec("{0} = '{1}'".join(fName.split('.')[0]), f.read())
f.close()
print(dog) #prints out content of the file "dog.txt"
我有数千个包含很长文本块的文本文件(每个文件大约 200kb - 600kb)。我想将每个文件的内容存储在一个单独的变量中,以便更容易识别它我想将它们存储在一个与文件名相同的变量中。假设文件 'dog.txt' 中有一个文本,我想将其内容存储在变量 'dog' 中。
有可能吗?如果没有,我可以使用字典,但它能容纳那么多吗?或者有其他选择吗?
PS:请停止投票:P 我意识到我的错误。
这里有字典的开销可以忽略不计。如果你能处理一个 600K 的字符串,你也可以将它放入字典中。所以你应该只使用从文件名到它的内容的字典:
files = {'dog.txt' : 'Lorem ipsum dolor sit amet', 'cat.txt' : 'meow'}
您可以通过将文件读入字典来解决此问题,其中键是不带 .txt 扩展名的文件名,值是文件内容。像这样的东西会起作用:
filenames = ['bird.txt', 'cat.txt', 'dog.txt']
data = {}
for name in filenames:
with open(name) as f:
key = name.partition('.')[0]
data[key] = f.read()
您可以通过在数据字典中查找文件名来访问文件内容:
contents_of_dog_file = data['dog']
你能做的最好的事情就是使用字典。但是您也可以使用 "exec()" 在现场创建变量,尽管字典是它的正确工具。假设您的所有文件都不以数字开头,也不包含变量名称的任何无效字符:
import os
fileNames = os.listdir(os.path.join(os.getcwd(), 'subfoldername'))
for fName in fileNames:
f = open(fName, 'r')
exec("{0} = '{1}'".join(fName.split('.')[0]), f.read())
f.close()
print(dog) #prints out content of the file "dog.txt"