Найти - Пользователи
Полная версия: Чтение файла, readlines()
Начало » Python для новичков » Чтение файла, readlines()
1
n2b
Читаю файл:
file = file.readlines()
Файл следующего вида:
line1
line2
...
lineN
Все строки, кроме последней, он читает так - “line1\n, line2\n, … , lineN”.
То есть, переход на новую строку он читает вот так - \n - при выводе прочитанного файла в окно, \n отображается как квадратик(неизвестный символ, проще говоря).
Вопрос, как избавится от \n?
Actor
f = file("filename.py").readlines()
for i in xrange(len(f) - 1): f[i] = f[i][0:-1]
хотя наверняка есть вариант получше
n2b
Пробежка по файлу и удаление последнего символа?
Прокомментируйте пожалуйста Ваш код, не совсем понятно.
Особенно вот это:
f[i] = f[i][0:-1]
Actor
это смайлик ангела
0:-1
элемент f - это строка. насколько я помню, строки в питоне неизменяемы, по-этому элементу f мы присваиваем “новую” строку, состоящую с первого по предпоследний символ бывшей строки.

кстати, можно писать не f, а f
n2b
Если мы присваиваем каждому элементу списка новую строку, с первого, по предпоследний элемент каждой строки, тогда зачем нам вот это - len(f) - 1 ?

Если я правильно понял, то здесь мы вычитаем из длины списка f 1 элемент? Да? ЗачеМ?
s0rg
1) readlines() не нужен.
2) в приведенном примере используется переменная file - ужас.

file_data = list()
with open('somefile') as fd:
for line in fd:
line = line.strip()
if line:
file_data.append(line)
А если так уж хочется readlines то:
file_data = map(lambda a:a.strip(),  fd.readlines())
Vader
Можно еще так сделать:
with open('file') as f:
data = f.read().split('\n')
ks
Vader
Можно еще так сделать:
with open('file') as f:
data = f.read().split('\n')
наверное даже так
with open('file') as f:
    data = f.read().split('\n')[0]
# [0] , как указатель на первый элемент получившегося после разделения
Vader
ks
наверное даже так
with open('file') as f:
data = f.read().split('\n') >>> (str, ‘\n’)
# , как указатель на первый элемент получившегося после разделения
Нет, так делать не нужно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB