亲爱的stackoverflow用户,
我正在努力解决以下问题:
我有一个包含多个文件的目录,例如
datasets/
dataset1.txt
dataset2.txt
dataset3.txt
dataset4.txt
dataset5.txt
并读出文件并将其内容分配给一个变量,该变量是没有文件类型扩展名的文件名。要明确:dataset1.txt
的内容应保存到变量dataset1
,dataset2.txt
的内容应保存到变量dataset2
,依此类推。
我知道我可以使用以下函数迭代我文件夹的内容:
for root, dirs, files in os.walk('.'):
print(files)
但最后它应该做类似于下面的事情:
for root, dirs, files in os.walk('.'):
for file in files:
file.split('.')[0] = numpy.loadtxt(file) # here it should create e.g. a variable dataset1 and read content of dataset1 into it.
这怎么可能?
此致
氏
答案 0 :(得分:2)
我会在这种情况下使用字典:
fileSet = {}
for root, dirs, files in os.walk('.'):
for file in files:
fileSet[file.split('.')[0]] = numpy.loadtxt(file)
然后您可以使用表达式访问内容,例如
dataset1Val = fileSet['dataset1']
答案 1 :(得分:0)
你应该在这里使用字典。字典给你的优势就是那个
for key in my_file_dict.keys()
以下代码从文件中读取数据,将其转换为列表,然后将其存储到dictionary
,其中key
为文件名
为了使其更加以效果为导向,您也可以使用DictionaryComprehension
而不是传统的嵌套for loops
。
output_dict = {file.split('.')[0] : numpy.loadtxt(f'{directory_path}\\{file}').tolist() for root, dirs, files in os.walk(directory_path) for file in files}
传统方式:
output_dict = {}
for root, dirs, files in os.walk(path):
for file in files:
output_dict[file.split('.')[0]] = numpy.loadtxt(f'{path}\\{file}').tolist()