我在子目录/directory_name/
中有一个文本文件目录。我想循环遍历此子目录中的所有文件,并将文件名附加为字符串作为字典键。然后我想在每个文本文件中取第一个单词,并将其用作每个键的值。我有点卡在这一部分:
import os
os.path.expanduser(~/directory_name/) # go to subdirectory
file_dict = {} # create dictionary
for i in file_directory:
file_dict[str(filename)] = {} # creates keys based on each filename
# do something here to get the dictionary values
是否可以通过两个单独的步骤完成此操作?也就是说,首先创建字典键,然后对所有文本文件进行操作以提取值?
答案 0 :(得分:0)
要更改目录,请使用os.chdir()
。假设每个文件中的第一个单词后跟一个空格,
import os
file_dict = {} # create a dictionary
os.chdir(os.path.join(os.path.expanduser('~'), directory_name))
for key in [file for file in os.listdir(os.getcwd()) if os.path.isfile(file)]:
value = open(key).readlines()[0].split()[0]
file_dict[key] = value
适合我。如果你真的想分两步完成,
import os
os.chdir(os.path.join(os.path.expanduser('~'), directory_name))
keys = [file for file in os.listdir(os.getcwd()) if os.path.isfile(file)] # step 1
# Do something else in here...
values = [open(key).readlines()[0].split()[0] for key in keys] # step 2
file_dict = dict(zip(keys, values)) # Map values onto keys to create the dictionary
给出相同的输出。