поиск по текстовым файлам с последующей печатью данных - PullRequest
0 голосов
/ 26 сентября 2019

я создаю систему бронирования автобусов, и я не знаю, как искать в текстовом файле и затем печатать данные.

вот как это должно работать:

пользователь вводит имя идата поездки

программа просматривает текстовый файл, чтобы найти строку, соответствующую названию и дате поездки

, если программа найдет ее, она напечатает количество билетов,имя, город отправления, город назначения, дата поездки, время поездки

вот мой полный код

restart = 'Y'

while restart != ('y'):
    passenger = open("reservation.txt" , "a+")

    print("\n1. Make Reservation")

    print("2. Modify Reservation")

    print("3. Cancel Reservation")

    print("4. Search Reservation")

    print("5. Exit")

    option = int(input("\nEnter your option: "))


    if option == 1: //makes reservation
        passenger.write("\n")
        tickets = input("\nNumber of Tickets: ")
        space = len(tickets)+1
        passenger.write(tickets.ljust(space))

        name = input("\nPassenger Name: ")
        space = len(name)+1
        passenger.writelines(name.ljust(space))

        departure  = input("\nDeparture City: ")
        space = len(departure)+1
        passenger.writelines(departure.ljust(space))

        destination  = input("\nDestination City: ")
        space = len(destination)+1
        passenger.writelines(destination.ljust(space))

        date = input("\nDate of Travel: ")
        space = len(date)+1
        passenger.writelines(date.ljust(space))

        time = input("\nTime of Travel: ")
        space = len(time)+1
        passenger.writelines(departure.ljust(space))

        print("Your reservation has been submitted. \nThank you!")
        restart = input("Try again? (y/n): ").upper()
        passenger.close()
        if restart == ('N'):
            exit(0)

    elif option == 2:
        //edits reservation

    elif option == 3:
        //cancels reservation

    elif option == 4: //searches through the reservations
        passenger = open("reservation.txt" , "r+")
        n = input("Enter passenger name: ")
            #dt = input("Date of Travel: ")
        if n in passenger.read():
            x = 0
            for i in range(1, x, 1):   
                contents = passenger.readlines(i)
                print(contents)
        else:
            print('doesnt exist')

        restart = input("Try again? (y/n): ").upper()
        passenger.close()
        if restart == ('N'):
            exit(0)  

    elif option == 5:
        exit(0)

    else:
        print('invalid input')

1 Ответ

0 голосов
/ 26 сентября 2019
with open("reservation.txt") as file:
    lines = file.readlines()
    for line in lines:
        if name in line and date in line: # name and date are the variables you're looking for
            print(line)
            break

Вы составляете список строк, а затем используете ключевое слово in для поиска по каждой строке в этом списке.

>>> 'python' in 'hello world this is python'
True
...