.readlines вообще не работает в python 3 - PullRequest
0 голосов
/ 17 июня 2020

Я создаю простой базовый c код, так как собираюсь использовать его для изучения GUI. Поэтому я подумал о создании кода типа библиотеки. Это неполно, так как это основная ошибка. Вот его код:

total_books = open('Total_books.txt', 'a+')

def lend(numeber_of_books, num_days, code_of_book):
    price_per_book = 1
    price_per_day = 2
    total_price = 0
    total_price = price_per_book * numeber_of_books
    total_price += numeber_of_books * (price_per_day * num_days)
    print(total_price, "is the cost.")
    y = code_of_book + "\n"
    lend_books.write(y)
    total_books.seek(0)
    lend_books.seek(0)
    lines = total_books.readlines()
    print(total_books.readlines())
    temp = open('total_books.txt', 'w+')
    for x in lines:
        if x == code_of_book + "\n":
            pass
        else:
            x.append(temp)
    temp.close()

lend(1, 3, "ASFD")

lend_books.close()
total_books.close()

Ну, в начале файла два файла. Вы можете пока положить в них что угодно. Как бы то ни было, total_books.readlines() возвращает []. Как видите, я пробовал разные вещи.

1 Ответ

0 голосов
/ 17 июня 2020
total_books = open('Total_books.txt', 'a+')

def lend(numeber_of_books, num_days, code_of_book):
    ...
    lines = total_books.readlines()
    print(total_books.readlines())
    temp = open('total_books.txt', 'w+')
    for x in lines:
        if x == code_of_book + "\n":
            pass
        else:
            x.append(temp)
    temp.close()

lend(1, 3, "ASFD")
total_books.close()

Итак, вы открываете Total_books.txt в режиме добавления; затем позвоните lend.

В lend вы readlines и назначьте lines. Затем вы читаете его снова и пытаетесь распечатать. Но вы уже в конце, поэтому печать ничего не показывает.

Теперь вы снова открываете total_books.txt в режиме записи / перезаписи.

Остальная часть функции что-то делает с lines и x, но ничего не возвращает. Итак, мы не знаем, было ли в lines что-нибудь полезное.

И я не вижу попыток записи в total_books.txt.

Итак, между двойными строками чтения нет возврата , без записи, двойное открытие, этот код сбивает с толку и не делает ничего полезного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...