#python #list #file
#python #Список #файл
Вопрос:
Здесь у меня есть некоторый код, который берет данные из файла и запрашивает пользователя, для какого местоположения они хотят видеть данные.
def main():
#ask user for a city or county and store that as a variable
location = input("Please enter a location. Make sure to add County if the location is a county ")
location = location.capitalize()
print("=== Data for",location," ===")
print("Date Total Cases Hospitalizations Deaths")
#open the file
covidFile = open("Covid Data.txt", "r")
#read the first line to move it aside from the rest of the data
firstLine = covidFile.readline()
#read the rest of the data in the file using a for loop
for dataLine in covidFile:
#strip the data line
dataLine = dataLine.rstrip("n")
#split the line into a dataList
dataList = dataLine.split(",")
#if location matches dataList[2]
if location in dataList:
date = str(dataList[0])
cases = int(dataList[4])
hospitalizations = int(dataList[5])
deaths = int(dataList[6])
print(date," ",cases," ",hospitalizations," ",deaths)
#if location does not match dataList[2]
else:
print("No data was found for that city or county.")
#close file
covidFile.close()
Однако существует проблема, когда код выводит длинные строки типа «Данные для этого города или округа не найдены», за которыми следует строка кода из файла. Я пытаюсь выяснить, как я исправляю код, чтобы он выводил данные только для местоположения, которое вводит пользователь (если местоположение находится в файле, конечно).
Ответ №1:
Я плохо говорю по-английски, поэтому могу неправильно понять ваш вопрос
lines = file.open(*.txt)
lines = lines.readlines()
list = []
for x in lines:
if str in x:
list.append(x)
Ответ №2:
Вы пробовали полностью удалить оператор else? Я имею в виду, что вам нужно распечатывать только всякий раз, когда местоположение найдено.
Если вам все еще нужно что-то распечатать, когда ничего не найдено, вы можете создать логическое значение, допустим data_found = False
, и пометить его как True, если вы когда-либо введете оператор if . Затем в самом конце скрипта после закрытия файла вы проверяете, not data_found
и там вы печатаете «Данные не найдены для этого города или округа».
Ответ №3:
Просто используйте переменную для сохранения, если данные найдены:
found = False
for dataline in Covidfile:
if condition:
.
.
.
found = True
if not found:
print("No data was found for that city or county.")