有没有办法从 Python 中的字典中选择和打开文本文件?
Is there a way to choose and open a text file from a dictionary in Python?
我目前正在编写一个程序,该程序使用 turtle 在 TAB 中显示一组吉他和弦,我想知道如果可以使用带有数值数据,然后将文本文件的名称存储在 python 中的字典中,如下所示:
d = {0: "", 1: "Am.txt", 2: "Bm.txt", 3: "Cm.txt", 4: "Dm.txt", 5: "Em.txt", 6: "Fm.txt", 7: "Gm.txt"}
l = [0,1,2,3,4,5,6,7]
我的目标是使用顺序搜索来根据用户输入确定要打开哪个测试文件:
n = 0
penup()
T.color('white')
x = 0
while x != 1: # this while loop is redundant
N = 0
chord = int(input("Please choose a number for your chord"))
# compare input with dictionary values
while N != 2:
if(chord == l[n]):
f = open(d[n])
while True:
N2 = f.readline()
if not N2:
break
if(chord != l[n]):
n = n + 1
N = N + 1
x = x + 1
我之前的代码只是告诉海龟如何使用 N2 移动和写入文件中的文本的命令。
到目前为止,我的结果只是打印“Am.txt”,而不是该文本文件中的内容,后面没有任何错误消息。我之前的代码是用 if 语句手动写出所有内容,但如果我能完成这项工作,那对我来说似乎是不必要的。
我假设您是编码新手?字典的好处是你可以通过他们的keys
直接访问values
。还要小心 while True
循环,因为它们会创建无限循环...
同样在您的情况下,用户需要知道哪个数字是哪个和弦。为什么不使 keys
更具体。另请阅读有关打开和读取文件的信息。
现在试试这个,但要注意你必须在 Am.txt
和 Bm.txt
所在的目录中(绝对路径与相对路径)。
d = {0: "", 'Am': "Am.txt", 'Bm': 'Bm.txt'}
while True:
chord = input('Input Chord: ')
if chord in d:
with open(d[chord], 'r') as f:
lines = f.readlines()
for line in lines:
print(line)
else:
print('chord not found')
我目前正在编写一个程序,该程序使用 turtle 在 TAB 中显示一组吉他和弦,我想知道如果可以使用带有数值数据,然后将文本文件的名称存储在 python 中的字典中,如下所示:
d = {0: "", 1: "Am.txt", 2: "Bm.txt", 3: "Cm.txt", 4: "Dm.txt", 5: "Em.txt", 6: "Fm.txt", 7: "Gm.txt"}
l = [0,1,2,3,4,5,6,7]
我的目标是使用顺序搜索来根据用户输入确定要打开哪个测试文件:
n = 0
penup()
T.color('white')
x = 0
while x != 1: # this while loop is redundant
N = 0
chord = int(input("Please choose a number for your chord"))
# compare input with dictionary values
while N != 2:
if(chord == l[n]):
f = open(d[n])
while True:
N2 = f.readline()
if not N2:
break
if(chord != l[n]):
n = n + 1
N = N + 1
x = x + 1
我之前的代码只是告诉海龟如何使用 N2 移动和写入文件中的文本的命令。 到目前为止,我的结果只是打印“Am.txt”,而不是该文本文件中的内容,后面没有任何错误消息。我之前的代码是用 if 语句手动写出所有内容,但如果我能完成这项工作,那对我来说似乎是不必要的。
我假设您是编码新手?字典的好处是你可以通过他们的keys
直接访问values
。还要小心 while True
循环,因为它们会创建无限循环...
同样在您的情况下,用户需要知道哪个数字是哪个和弦。为什么不使 keys
更具体。另请阅读有关打开和读取文件的信息。
现在试试这个,但要注意你必须在 Am.txt
和 Bm.txt
所在的目录中(绝对路径与相对路径)。
d = {0: "", 'Am': "Am.txt", 'Bm': 'Bm.txt'}
while True:
chord = input('Input Chord: ')
if chord in d:
with open(d[chord], 'r') as f:
lines = f.readlines()
for line in lines:
print(line)
else:
print('chord not found')