如何用一本字典来编一本字典

2024-05-29 04:22:14 发布

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

我的文件位于一个文件夹中,该文件夹包含具有图像的文本文档。文件“stars”包含一个.txt文件

我的目标是得到一个口述,它会说{a',a.txt}a.txt是指向实际文件a.txt的路径

import os




def main():

    # relative path to the folder where you unzipped the ASCII art files
    #folder = "stars"
    # or use an absolute path to the folder. example:
    folder = r"C:\Users\Alison\Documents\a CPS 111\Bonus PA\stars\stars"

    # os.listdir(folder) returns a list of files in folder
    file_list = os.listdir(folder)
    letter_art = {}



    for fname in file_list:
        # example: letter[0] is "A" and letter[1] is "txt"
        letter_extension_list = fname.split(".")
        key = letter_extension_list[0]

        value = letter_extension_list[1]
        value = "%s."%(key) + value 

        letter_art[key] = value 
        fname = "\\".join([folder, value])
    word = str(input("Please input a letter: "))  
    word = word.upper()
    for letter in word:
        print(letter_art[letter])



        print(fname)


main()

我真的很努力使目录工作,因为我最终会得到一个点,用户将输入一个字,它将输出一个绘图的基础上,从位于星星的文件的字母。你知道吗

所以文件夹中的文件包含一个与信件相关的文本文档。有26个文件A-Z A.txt,B.txt等。。。你知道吗

我们的目标是创建一个字典,说{a',a.txt} 因此,如果用户输入“hi”,计算机将查找h.txt和i.txt并在文本文件中显示信息。你知道吗


Tags: 文件theintxt文件夹valueosextension
3条回答

如果您当前的目标是获得一个字典,其中键是字母表,值是文件路径,则可以尝试以下方法:

import os
folder = r"C:\Users\sarah\Documents\a CPS 111\Bonus PA\stars\stars"

file_list = os.listdir(folder)
letter_art = {}

for fname in file_list:
    letter_extension_list = fname.split(".")
    key = letter_extension_list[0]
    fp = folder + '\\' + fname
    letter_art[key] = fp

entry = raw_input()
for letter in entry:
    print letter_art[letter]

编辑后

import os
folder = r"C:\Users\sarah\Documents\a CPS 111\Bonus PA\stars\stars"

file_list = os.listdir(folder)
print(file_list)
letter_art = {}

file_list.sort()

for fname in file_list:
    letter_extension_list = fname.split(".")
    key = letter_extension_list[0]
    letter_art[key]=folder+'\'+fname

print(letter_art)

word=raw_input('Input : ')
letters=list(word)

for letter in letters:
    if letter in letter_art:
        print("**File : %s***\n"%letter)
        with open(letter_art[letter]) as f:
            print f.read()

它看起来像你的覆盖key。首先是文件名,例如“A”,但是如果名称是“AB”,那么密钥将导致问题(例如访问密钥[1]),但是您可能不会遇到这种情况。你知道吗

而且letter_art[key]似乎没有在循环中做任何事情“#将所有A-Z作为键”。这是旧密码吗?你知道吗

稍后值也会被覆盖而不做任何操作,您只是想得到最后一行吗?你知道吗

你只是想达到@Yash Dhandhania的回答吗?你知道吗

相关问题 更多 >

    热门问题