Как перечитать файл по его размеру? - PullRequest
0 голосов
/ 31 января 2020

если я хочу написать al oop, используя список, чтобы определить, нужно ли снова читать файл, как я могу это сделать? Например, я использую

f.seek(0,2) 
f.tell() 

, чтобы узнать, что размер файла равен 3. Если я хочу вывести

a=[1,2,3,4,5]
f is "abc"
f.read(a[0]) is "a"
f.read(a[2]) is "abc"
f.read(a[3]) is "abca" 
f.read(a[4]) is "abcab"

, как написать if / else, чтобы определить это?

1 Ответ

0 голосов
/ 31 января 2020

Вам не нужно читать файл повторно. Просто прочитайте его один раз и продублируйте содержимое столько раз, сколько вам нужно.

Попробуйте прочитать количество символов, которое вы хотите. Если файл короче этого, вы получите более короткий результат. Подсчитайте, сколько раз повторить это, разделив желаемую длину на длину, которая была возвращена. И используйте модуль, чтобы вычислить, сколько дополнительных символов взять из результата.

def read_n(f, n):
    temp = f.read(n)
    if len(temp) == n:
        return temp
    count = n // len(temp)
    remainder = n % len(temp)
    result = temp * count + temp[:remainder]
    return result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...