如何让 python 从记事本读取文件并给出值

how to make python read file from notepad and give the value

大家好,我有这个包含国家和首都列表的记事本。 然后我想输入国家名称以显示首都,所以这就是我感到困惑的地方。

country.txt
malaysia, vietnam, myanmar, china, sri lanka, japan, brazil, usa, australia, thailand, russia, uk
kuala lumpur, hanoi, yangon, beijing, colombo, tokyo, rio, washington, canberra, bangkok, moscow, london

这是国家和首都的记事本文件

f = open(r'C:\Users\User\Desktop\country.txt')
count = 0
for line in f:
    line = line.rstrip('\n')
    rec = line.split(',')
    count = count + 1

ctry = input('\nEnter country name: ')
ctry = ctry.lower()

for i in country:
    if ctry == country[i]:
        print ('country:', ctry)
        print ('capital:', capital[i])
        break
else:
    print ('country not in the list')

这是我不知道该怎么做才能让它发挥作用的地方。

我希望输出像

Enter country name: vietnam 
Country: vietnam 
Capital:  hanoi 

当列表中没有国家时

Enter country name: france 
Country not in the list

首先,以下是您的代码无法正常工作的一些原因以及一些建议:

  • 您没有定义变量 country 或 capital,因此您将输入与空值进行比较,这将引发错误,因为变量未定义。
  • 如果你打开一个文件,你应该在操作之后关闭它,建议最好使用with
  • 请参阅 this 了解 for 循环的工作原理,因为您试图索引 country[i],知道 i 是一个元素而不是整数索引。

不过,你可以试试这个:

with open(r'C:/Users/User/Desktop/country.txt') as f:
    lines=f.read().splitlines()
    countries=lines[0].strip().split(', ')
    cities=lines[1].strip().split(', ')
count = 0

print(countries)
print(cities)


ctry = input('\nEnter country name: ')
ctry = ctry.lower()

for i in countries:
    if i == ctry:
        print ('country:', ctry)
        print ('capital:', cities[countries.index(i)])
        break
else:
    print ('country not in the list')

输出:

countries
>>>['malaysia', 'vietnam', 'myanmar', 'china', 'sri lanka', 'japan', 'brazil', 'usa', 'australia', 'thailand', 'russia', 'uk']

cities
>>>['kuala lumpur', 'hanoi', 'yangon', 'beijing', 'colombo', 'tokyo', 'rio', 'washington', 'canberra', 'bangkok', 'moscow', 'london']

>>>'\nEnter country name: ' uk
>>>country: uk
>>>capital: london