如何让 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
大家好,我有这个包含国家和首都列表的记事本。 然后我想输入国家名称以显示首都,所以这就是我感到困惑的地方。
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