Найти - Пользователи
Полная версия: не удается убрать перевод каретки \n
Начало » Python для новичков » не удается убрать перевод каретки \n
1 2
refresh
Добрый день. Читаю файл построчно, потом вывожу так:
print 'Proxy {} on port {} is VALID. Testing time -{} '.format(addr,port,res_time)
и вот после переменной port вывод начинается с новой строки. т.е получается вот так:

Proxy 209.203.29.66 on port 8080
is VALID. Testing time -3
уже и srip('\n') делал и replace('\n',''), ничего не помогает. С помощью notepad++ посмотрел везде только один символ перевода строки.
UsCr
Откуда берёте port?
Попробуйде отрезать последний символ:
print 'Proxy {} on port {} is VALID. Testing time -{} '.format(addr, str(port)[:-1], res_time)
refresh
К сожалению не помогло. вырезка кода:
file = open(proxy_list,'rb').readlines()
goodfile = open(good_list,'wb')
real_ip = get_ip()
for line in file:
try:
addr,port=line.split(':') # вот от сюда беру port
файл вида:
209.203.29.66:8080
123.123.1.1:334
201.76.190.251:3128
68.83.99.68:8085
72.44.82.43:3128
216.18.21.190:8080
______________________________________________
UPD

Помог срез , но почему? ведь \n это один символ len('1\n2') = 3
UsCr
refresh
но почему? ведь \n это один символ
В виндах - два. Всмысле не \n - 2 символа, а перевод строки организуется двумя символами.
igor.kaist
UsCr
а перевод строки организуется двумя символами.
именно, а если подробнее, это \r\n
refresh
ага, уже разобрался, спасибо =)
Александр Кошелев
refresh
file = open(proxy_list,'rb').readlines()
Проблема в том что вы файл в бинарном режиме окрыли, поэтому и мучаетесь с “лишними” символами.
bw
> Проблема в том что вы файл в бинарном режиме окрыли, поэтому и мучаетесь с “лишними” символами.
Бинарный режим тут ни при чём (2.6.6), так всегда было.

> addr, port = map(str.strip, line.rsplit(':', 1))

..bw
bazooka
>>> p = r'c:\test.txt'
>>> open(p, 'w').write('1111\n22222\n33333\n')
>>> open(p, 'r').read()
'1111\n22222\n33333\n'
>>> open(p, 'rb').read()
'1111\r\n22222\r\n33333\r\n'
вроде как бинарный режим причем
bw
У меня нет возможности под виндой проверить, но в линухе этот флажок на “вырезание” \r не влияет. Т.е. 'r' вместо 'rb' это ни в коем случае не решение обсуждаемой проблемы.

>>> open('/home/bw/tmp/foo.txt', 'r').read()
'123\r\nqwe\r\nasd\r\n'
>>> open('/home/bw/tmp/foo.txt', 'rb').read()
'123\r\nqwe\r\nasd\r\n'
..bw
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