2015-04-29 2 views
0

Я пытаюсь написать программу, которая будет искать файл для всех имен из определенного состояния (NY, PA и т. Д.) И номера округа (1,2,3 и т. Д.). , Это также должно принять пользовательский ввод. Что я до сих пор не работает. Я не уверен, куда идти отсюда. Как закончить этот код?Поиск имен файлов, содержащих определенные строки

Это то, что я до сих пор:

def main(): 
    legislatorsTxtFile= open("legislators-all.txt","r") 
    stateName= input("enter a state abv.") 
    districtNum= input("enter district Number") 
    R1= legislatorsTxtFile.readline() 
    # while loop 
    # 

    R2= R1.split(",") 
    if stateName in legislatorsTxtFile: 
     print(stateName) 
    print(legislatorsTxtFile) 

main() 

Вот snipbit файла:

last_name,first_name,birthday,gender,type,state,district,party 

Zwach,John,2/8/07,M,rep,MN,6,Republican, 

Zschau,Edwin,1/6/40,M,rep,CA,12,Republican 

Zollicoffer,Felix,1812-05-19,M,rep,TN,8,American 

Также я использую PyCharm.

+1

Что ваш вопрос? – RafaelC

+0

Извините, я не заметил, что я не ввел это. – Dylan

+0

Каков формат содержимого файла? Как следует использовать переменную «districtNum»? –

ответ

0

Что-то вроде этого

def main(): 
    legislatorsTxtFile = open("names.txt","r").read() 
    stateName = raw_input("enter a state abv.") 
    districtNum = raw_input("enter district Number") 
    lines = legislatorsTxtFile.split('\n') 
    matches = [] 
    for line in lines: 
     cols = line.split(',') 
     if stateName == cols[5] and districtNum == cols[6]: 
      matches.append(line) 

    print matches 

main() 
+0

Спасибо, это очень помогло! – Dylan

0
def search_line(): 
    legislatorsTxtFile="legislators-all.txt" 
    stateName=input("enter a state abv.") 
    districtNum=input("enter district Number") 
    for i in open(legislatorsTxtFile, "r"): 
     res = i.split(",") 
     if res[5] == stateName and res[6] == districtNum: 
      print i 

if __name__ == "__main__": 
    search_line() 

, если вам не нужно точное соответствие как состояние и район в использовании одна линия:

if res[5] == stateName or res[6] == districtNum: 
Смежные вопросы