Форум сайта python.su
doza_andЕго там и не было. В древние времена был даже xreadlines() (чтобы итерировать). Там всегда был список.
Да блин, век живи век учись. Спасибо! Не думал что в питоне 3 вернут список а не итератор.
doza_andУ тебя там ещё pep8 нарушен. Это значит, что ты редко пишешь код (навык выветривается), а ещё не пользуешься автоматическими средствами. Сегодня pep8 проверяется не по памяти, а программно. Где-то запускается программа, а где-то среда следит за этим интерактивно и подчёркивает нарушения прямо во время набора.
Не то что редко. Я так вообще никогда не пишу.
Always surround these binary operators with a single space on either side: assignment ( = ), augmented assignment ( += , -= etc.), comparisons ( == , < , > , != , <> , <= , >= , in , not in , is , is not ), Booleans ( and , or , not ).
[guest@localhost py]$ cat cl.py
import time
t0=time.clock()
with open("aaa.txt","r") as f:
a=list(f.readlines())
# a=f.read()
t1=time.clock()
print(t1-t0)
[guest@localhost py]$
[guest@localhost py]$ python3-pep8 cl.py
cl.py:4:3: E225 missing whitespace around operator
cl.py:5:20: E231 missing whitespace after ','
cl.py:6:6: E225 missing whitespace around operator
cl.py:9:3: E225 missing whitespace around operator
[guest@localhost py]$
[guest@localhost py]$ python3-pylint cl.py
No config file found, using default configuration
************* Module cl
C: 4, 0: Exactly one space required around assignment
t0=time.clock()
^ (bad-whitespace)
C: 5, 0: Exactly one space required after comma
with open("aaa.txt","r") as f:
^ (bad-whitespace)
C: 6, 0: Exactly one space required around assignment
a=list(f.readlines())
^ (bad-whitespace)
C: 9, 0: Exactly one space required around assignment
t1=time.clock()
^ (bad-whitespace)
C: 1, 0: Missing module docstring (missing-docstring)
C: 4, 0: Invalid constant name "t0" (invalid-name)
C: 6, 4: Invalid constant name "a" (invalid-name)
C: 9, 0: Invalid constant name "t1" (invalid-name)
Report
======
7 statements analysed.
Statistics by type
------------------
...
Global evaluation
-----------------
Your code has been rated at -1.43/10
...
[guest@localhost py]$
doza_andАга, обычно \n или пробелы, а про контекст не слыхал никогда? Это когда вот эти \n или пробелы могут не быть разделителем в каких-то редких случаях. Допустим, у тебя идёт поток слитых воедино html-страниц. Как ты их разделишь? Вот идёт всё это одной строкой. Ты будешь искать тег
По поводу разбиения. Да надо правильно выравнивать блоки. Но выравнивать понятное дело не по границам букв, а по лексемам или даже еще более сложным конструкциям характерным для данного типа файлов. Это обычно “\n” или пробелы.
<html>
<!-- <html> -->
doza_andДа ты ни одной не написал. Я же предлагал выше написать сворачивальщик для иероглифов, а ты его не потянул. Я так и меряю: не тянешь это - значит, не тянешь целый класс задач. И не учебных уже, а реальных.
Если вам нужен зачем-то алгоритм выравнивания по буквам для utf-8 не стесняйтесь, пишите. Насколько я понимаю это пара строчек кода.
doza_andДа какой там памяти. Нет у тебя строк в программе, чтобы можно было о памяти заморачиваться. То, что ты назвал строками, - это данные обычные, которые всё так же рассматриваются через bytes(). А строки - это вот окно у тебя, например, и ты туда выводишь заголовок. Вот этот заголовок никакого выигрыша не даёт, если он не является юникодовой строкой. Зато если он является юникодовой строкой, то он может быть хоть на китайском, и от локали это зависеть не будет.
При этом существенно поднимется скорость обмена с диском и снизятся затраты памяти.
Отредактировано py.user.next (Окт. 16, 2016 17:36:30)
Офлайн