Sondaki yeni satırı nasıl kaldırabilirim?


1689

chompBir dizgenin yeni satırsa son karakterini kaldıran Perl işlevinin Python eşdeğeri nedir ?



3
A + yanıtı, bunun platformunuz için open()uygun 'newline = ...' parametresine (evrensel newline desteği) sahip bir dosyayı unutması nedeniyle açık bir şekilde kaldırmanız gerekmeyebilir.
smci

Yanıtlar:


1868

Yöntemi deneyin rstrip()(bkz. Doc Python 2 ve Python 3 )

>>> 'test string\n'.rstrip()
'test string'

Python'un rstrip()yöntemi , Perl'in yaptığı gibi sadece bir satırsonu değil, varsayılan olarak her türlü sondaki boşlukları ayırır chomp.

>>> 'test string \n \r\n\n\r \n\n'.rstrip()
'test string'

Yalnızca yeni satırları ayırmak için:

>>> 'test string \n \r\n\n\r \n\n'.rstrip('\n')
'test string \n \r\n\n\r '

Ayrıca yöntemler lstrip()ve strip():

>>> s = "   \n\r\n  \n  abc   def \n\r\n  \n  "
>>> s.strip()
'abc   def'
>>> s.lstrip()
'abc   def \n\r\n  \n  '
>>> s.rstrip()
'   \n\r\n  \n  abc   def'

22
Ben bir Python kişi değilim, bu yüzden bu cevabım yok, ama Perl chomp () aslında giriş kayıt ayırıcıyı sondan kaldırır. Bu Unixy olaylarında yeni bir satır, ancak farklı olabilir (örneğin Windows) ve değişebilir. Bu değeri bir dizenin sonundan yalnızca bir kez kaldırmanın bir yolu var mı?
brian d foy

5
brian d foy: Python'un awk ve Perl gibi bir girdi kayıt ayırıcısı yok.
Peter Hosey

7
@csde_rats, bu doğru değil: OS X, \nUnix gibi yeni satırlar için kullanır . (OS X'ten önce MacOS, \rhat ayırıcı olarak kullanıyordu , ancak bu 10 yıl önce sona erdi.)
2012'de

21
@briandfoy Python, Universal yeni satırları için yerleşik desteğe sahiptir (yalnızca okurken, yazarken değil). Dosyayı "U" veya "rU" modunda açarsınız ve Windows, Linux, Mac'ten bağımsız olarak, metin ne olursa olsun, metin python kodunuza ulaştığında, herhangi bir yeni satır stili "\ n" ile değiştirilir. Bakınız: python.org/dev/peps/pep-0278
AlcubierreDrive

12
Devam edeceğim ve bunu heceleyeceğim çünkü bir çaylağım ve neden çalışmadığını merak ederek biraz zaman geçirdim. .strip()dizeyi değiştirmez (muhtemelen değişmez dizelerle ilgisi vardır). Komut satırında değilse, isteyeceksiniz"string = string.strip()"
Script Kitty


146

Satır sonu (EOL) karakterlerini ayırmanın kurallı yolu, izleyen \ r veya \ n dizesini kaldırmak için string rstrip () yöntemini kullanmaktır. Aşağıda Mac, Windows ve Unix EOL karakterlerine örnekler verilmiştir.

>>> 'Mac EOL\r'.rstrip('\r\n')
'Mac EOL'
>>> 'Windows EOL\r\n'.rstrip('\r\n')
'Windows EOL'
>>> 'Unix EOL\n'.rstrip('\r\n')
'Unix EOL'

Rstrip parametresi olarak '\ r \ n' kullanılması, herhangi bir '\ r' veya '\ n' kombinasyonunu kaldırması anlamına gelir. Bu yüzden yukarıdaki üç durumda da çalışır.

Bu nüans nadir durumlarda önemlidir. Örneğin, bir zamanlar bir HL7 mesajı içeren bir metin dosyasını işlemek zorunda kaldım. HL7 standardı, EOL karakteri olarak bir "r" gerektirir. Bu iletiyi kullandığım Windows makinesi kendi '\ r \ n' EOL karakterini eklemişti. Bu nedenle, her satırın sonu '\ r \ r \ n' gibi görünüyordu. Rstrip ('\ r \ n') kullanmak istediğim gibi olmayan tüm '\ r \ r \ n' kodunu çıkarırdı. Bu durumda, sadece son iki karakteri dilimledim.

Perl chompişlevinden farklı olarak , bunun yalnızca bir değil, dizenin sonunda belirtilen tüm karakterleri sileceğini unutmayın:

>>> "Hello\n\n\n".rstrip("\n")
"Hello"

7
Modern Mac OS X uygulamalarının \ n kullandığını unutmayın. Başlangıçta Mac OS için yazılmış sadece eski Karbon uygulamaları \ r kullanın.
Peter Hosey

2
Açıklama için teşekkürler. Tabii ki, rstrip ('\ r \ n') yine de bu durumda çalışır.
Mike

13
os.linesepMevcut işletim sistemi için EOL dizisini içeren de vardır .
Eli Collins

Bu en iyi cevaptır: Yalnızca yeni satırları çıkarır ve en yaygın platformlar için doğru şekilde yapar.
kevinarpe

artı +1 Kullanmak için \nve\r
fechnert

99

Dizgeyi değiştirmediği için rstrip komutunun Perl chomp () işlevi görmediğini unutmayın. Yani, Perl'de:

$x="a\n";

chomp $x

sonuçlanır $xolmak "a".

ama Python'da:

x="a\n"

x.rstrip()

değerinin halax olduğu anlamına gelir . Hatta her zaman aynı sonucu vermez, çünkü en fazla bir satırsonu değil, tüm boşlukları dizenin sonundan ayırır. "a\n"x=x.rstrip()


7
Ayrıca, strip () tekrarlanan karakterleri kaldırırken, chop / chomp yalnızca bir satırsonu kaldırır
kostmo

50

Ben böyle bir şey kullanabilirsiniz:

import os
s = s.rstrip(os.linesep)

Bence sorun rstrip("\n")muhtemelen çizgi ayırıcı taşınabilir olduğundan emin olmak isteyeceksiniz. (bazı eski sistemlerin kullanıldığı söyleniyor "\r\n"). Diğer sorun ise rstriptekrarlanan boşlukları çıkaracak. Umarım os.linesepdoğru karakterleri içerir. yukarıdakiler benim için çalışıyor.


12
Ancak bir web uygulamasında kullanıcı tarafından gönderilen içeriği temizlemeye çalışıyorsanız bu çalışmaz. Kullanıcı içeriği herhangi bir kaynaktan gelebilir ve yeni satır karakterleri içerebilir.
apiguy

2
İyi bir nokta, bunun dışında modern işletim sisteminizde 'yabancı' dosyaları (antika sistemlerden) işliyor olabilirsiniz.
ChuckCottrill

1
Ayrıca, metin modunda bir dosya okuyorsanız, bunun bir Windows sisteminde de çalışmayacağını unutmayın, çünkü sondaki karakter her zaman '\ n' biçimine dönüştürülecektir.
Çılgın Fizikçi

@MadPhysicist Onu dönüştürdüğü konusunda haklısınız, ancak yine de çalışıyor çünkü argümandaki karakterlerle aynı rstrip('\r\n')ve rstrip()şerit olacak.
dtauxe

41

Kullanabilirsiniz line = line.rstrip('\n'). Bu, tüm yeni satırları yalnızca bir değil, dizenin sonundan çıkaracaktır.


35
s = s.rstrip()

dizenin sonundaki tüm yeni satırları kaldıracaktır s. Atama gereklidir, çünkü rstriporijinal dizeyi değiştirmek yerine yeni bir dize döndürür.


33

Bu, "\ n" satır sonlandırıcısı için perl kodunu (dizilerde eksi davranış) tam olarak çoğaltır:

def chomp(x):
    if x.endswith("\r\n"): return x[:-2]
    if x.endswith("\n") or x.endswith("\r"): return x[:-1]
    return x

(Not: 'yerinde' dizesini değiştirmez; fazladan boşluk bırakmaz; \ r \ n dikkate alır)


27
"line 1\nline 2\r\n...".replace('\n', '').replace('\r', '')
>>> 'line 1line 2...'

ya da her zaman regexps ile geekier alabilirsiniz :)

iyi eğlenceler!


Bu, satır sonları olan bir metin dosyasını hızlı bir şekilde bir metin satırına dönüştürmeye çalışmak benim için harika çalıştı. Ben bir acemi değilim, bu yüzden bunu yapmanın daha iyi bir yolu olup olmadığından emin değilim, ama işe yaradı, teşekkürler! (Strip dahili olarak değil, yalnızca uçlardan çalışıyor gibi görünüyordu)
Steve Koch

2
Neden sadece bir replace deyimi kullanmıyorsunuz .replace('\n|\r', '')?
Doorknob

2
Başka birinin @DoorknobofSnow'dan fikri kullanmak istemesi durumunda, regex modülünü kullanmak sadece küçük bir değişikliktir: import re re.sub('\n|\r', '', '\nx\n\r\n')==> 'x'.
Taylor Edmiston

@TaylorEdmiston olarak bu ve regex tekniğinin kullanılması uygun cevap olmalıdır.
Bhargav

@Bhargav Bu soruya, önerdiğiniz gibi bu yoruma dayanarak bir cevap ekledim, aynı zamanda ilgili birkaç seçeneği de keşfettim. Regex'in neden bu soruna str.rstrip'ten daha iyi bir çözüm olduğunu düşündüğümü de açıkladım, çünkü çoğu cevap budur.
Taylor Edmiston

27

şerit kullanabilirsiniz:

line = line.strip()

demo:

>>> "\n\n hello world \n\n".strip()
'hello world'

1
Bu çözümü denedim, ancak satırdaki önde gelen boşlukları çıkarıyor.
Tarık

@Tarik rstrip kullanabilirsiniz
Hackaholic

rstrip, yalnızca en fazla bir satırsonu silen chomp'tan farklı olarak tüm boşlukları siler.
Flimm

20

rstrip pek çok seviyede chomp ile aynı şeyi yapmaz. Http://perldoc.perl.org/functions/chomp.html adresini okuyun ve chomp'ın gerçekten çok karmaşık olduğunu görün.

Ancak, asıl amacım chomp en fazla 1 satır sonunu kaldırırken, rstrip olabildiğince fazla kaldıracaktır.

Burada rstrip'in tüm yeni satırları kaldırdığını görebilirsiniz:

>>> 'foo\n\n'.rstrip(os.linesep)
'foo'

Re.sub ile tipik Perl pirzolası kullanımının çok daha yakın bir şekilde gerçekleştirilmesi mümkündür, örneğin:

>>> re.sub(os.linesep + r'\Z','','foo\n\n')
'foo\n'

2
Kudos, bu çok önemli ayrıntıyı gösteren tek kişi sensin. Ancak, yukarıda belirtildiği gibi, farklı bir sistemden dosya okuyorsanız os.linesep kullanmak işe yaramaz. Bu, Python'da biraz daha fazla çalışma gerektirebilir, aslında hattın sonunu inceler.
brianmearns

19

Dikkatli olun "foo".rstrip(os.linesep): Bu yalnızca Python'unuzun yürütüldüğü platform için yeni satır karakterlerini chomp eder. Linux altında bir Windows dosyasının satırlarını şımarttığınızı düşünün, örneğin:

$ python
Python 2.7.1 (r271:86832, Mar 18 2011, 09:09:48) 
[GCC 4.5.0 20100604 [gcc-4_5-branch revision 160292]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os, sys
>>> sys.platform
'linux2'
>>> "foo\r\n".rstrip(os.linesep)
'foo\r'
>>>

"foo".rstrip("\r\n")Bunun yerine Mike'ın yukarıda söylediği gibi kullanın .


Dikkat edilmesi gereken diğer bir şey, en fazla bir yeni satırı değil, tüm yeni satırları, aksine kaldırmasıdır chomp.
Flimm

19

Python'un belgelerindeki bir örnek sadece kullanır line.strip().

Perl chompişlevi, bir satır sonu dizisini yalnızca gerçekten varsa bir dizenin sonundan kaldırır.

Python, bunu processkavramsal olarak bu dosyadan her satır için yararlı bir şey yapmak için gereken işlev ise nasıl planlıyoruz :

import os
sep_pos = -len(os.linesep)
with open("file.txt") as f:
    for line in f:
        if line[sep_pos:] == os.linesep:
            line = line[:sep_pos]
        process(line)

2
Son olarak, sadece bir kez (gerçek chomp ... gibi) kaldıran ve işletim sistemi taşınabilir bir cevap !
Ciro Santilli 法轮功 病毒 审查 六四 事件 法轮功

13

Python'da program yapmıyorum, ancak python.org'da S.rstrip'i ("\ r \ n") savunan bir python 2.2 veya üstü için SSS ile karşılaştım.


10
import re

r_unwanted = re.compile("[\n\t\r]")
r_unwanted.sub("", your_text)

2
Bu, orijinal sorunun istemediği sekme boşluğunu da kaldıracaktır. (\ T karakteri nedeniyle)
NoahR

9

Bir dosya nesnesinden kesilmemiş satırları alabilmenize paralel olarak, kesikli satırları yineleyici aracılığıyla elde edebilmeyi uygun buluyorum. Bunu aşağıdaki kodla yapabilirsiniz:

def chomped_lines(it):
    return map(operator.methodcaller('rstrip', '\r\n'), it)

Örnek kullanım:

with open("file.txt") as infile:
    for line in chomped_lines(infile):
        process(line)

Not: With operator.methodcallerve map( itertools.imapPython seviyesi jeneratör kodunu kaçınarak (ve böylece olsa kuşkusuz I / O havai küçük kazançlar maskelemek muhtemeldir, biraz daha hızlı çalıştıran), C katmanına bu işi itebilir Py2 üzerine): for line in map(operator.methodcaller('rstrip', '\r\n'), infile):. Yine de çarpanlarına ayrılabilir def chomped_lines(it): return map(operator.methodcaller('rstrip', '\r\n'), it).
ShadowRanger

8

özel durum için geçici çözüm:

eğer yeni satır karakteri son karakter ise (çoğu dosya girişinde olduğu gibi), o zaman koleksiyondaki herhangi bir eleman için aşağıdaki gibi indeksleyebilirsiniz:

foobar= foobar[:-1]

yeni satır karakterinizi dilimlemek için.


3
Bazen satır değil bir son karakteri, ama diğerleri gibi özel pencerelerde sonuncular, sivri out var.
Cacovsky

8

Sorunuz, birden çok satır str nesnesindeki (oldstr) tüm satır sonlarını temizlemekse, onu '\ n' sınırlayıcısına göre bir listeye bölebilir ve sonra bu listeyi yeni bir str (newstr) olarak birleştirebilirsiniz.

newstr = "".join(oldstr.split('\n'))


7

Perl'in chomp için mükemmel bir analog yok gibi görünüyor . Özellikle, rstrip gibi çok karakterli yeni satır sınırlayıcılarını işleyemez \r\n. Ancak, splitlines burada belirtildiği gibi yapar . Farklı bir soru hakkındaki cevabımı takiben , bir dizeden tüm yeni satırları kaldırmak / değiştirmek için birleştirme ve ayırma çizgilerini birleştirebilirsinizs :

''.join(s.splitlines())

Aşağıdaki kaldırır tam olarak bir arka satır (chomp, ben inanmak). Geçme Trueolarak keependssplitlines için argüman ayraçları korur. Ardından, yalnızca son "satır" daki sınırlayıcıları kaldırmak için tekrar bölme çizgileri çağrılır:

def chomp(s):
    if len(s):
        lines = s.splitlines(True)
        last = lines.pop()
        return ''.join(lines + last.splitlines())
    else:
        return ''

7

Daha önce başka bir cevabın yorumlarında gönderdiğim birinden düzenli ifade temelli cevabımı fırlatıyorum. Bence kullanmak rebu soruna göre daha açık ve açık bir çözüm str.rstrip.

>>> import re

Bir veya daha fazla sondaki yeni satır karakterini kaldırmak istiyorsanız :

>>> re.sub(r'[\n\r]+$', '', '\nx\r\n')
'\nx'

Newline karakterlerini her yerde kaldırmak istiyorsanız (yalnızca sondaki değil):

>>> re.sub(r'[\n\r]+', '', '\nx\r\n')
'x'

Yalnızca 1-2 sondaki yeni satır karakterleri kaldırmak istiyorsanız (yani \r, \n, \r\n, \n\r, \r\r, \n\n)

>>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n\r\n')
'\nx\r'
>>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n\r')
'\nx\r'
>>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n')
'\nx'

Çoğu insanın burada gerçekten ne istediğini hissediyorum, sondaki yeni satır karakterinin tek bir örneğini kaldırmak ya \r\nda \nbaşka bir şey yok.

>>> re.sub(r'(?:\r\n|\n)$', '', '\nx\n\n', count=1)
'\nx\n'
>>> re.sub(r'(?:\r\n|\n)$', '', '\nx\r\n\r\n', count=1)
'\nx\r\n'
>>> re.sub(r'(?:\r\n|\n)$', '', '\nx\r\n', count=1)
'\nx'
>>> re.sub(r'(?:\r\n|\n)$', '', '\nx\n', count=1)
'\nx'

( ?:Yakalamayan bir grup oluşturmaktır.)

(Bu arada, bu iş parçacığı üzerinde tökezleyen başkaları için net olmayan bir şey '...'.rstrip('\n', '').rstrip('\r', '')değildir. str.rstripMümkün olan en fazla karakter dizer, bu nedenle bir dize foo\n\n\nyanlış pozitif sonuç fooverirken, korumak isteyebilirsiniz. tek bir sondaki sıyırdıktan sonra diğer yeni satırlar.)


Regex ile son yaklaşımınız için bile yakalamayan grubu atlayabilirsiniz r'\r?\n$'. Muhtemelen daha verimlidir, çünkü regex motorları alternatifleri optimize etmek için daha zor zamanlara sahiptir. Ayrıca, bunu birçok kez yapacaksanız , ifadenin önüne bir kez daha önemli bir şekilde daha hızlı olacağını (özellikle başka rekullanımlarla karışıyorsanız ) , derlenmiş normal ifade nesnesinin yöntemini re.compilekullanın sub; modül işlevleri Python düzeyindedir ve önce derlenmiş normal ifadeler için bir önbellek kontrol edin (eksikse oluşturma / önbellekleme), ardından eşleşen yöntemi çağırın; bu aramayı atlamak yardımcı olur.
ShadowRanger

1
Ayrıca, yan not: \nDoğrudan eşleştirmeye çalıştığınız için , \Züzerinde kullanmak isteyebilirsiniz $(veya yalnızca eşleştirin \r?$, çünkü $örtük olarak bir dizenin sonundaki yeni satırdan hemen önce eşleşebilir).
ShadowRanger

5
>>> '   spacious   '.rstrip()
'   spacious'
>>> "AABAA".rstrip("A")
  'AAB'
>>> "ABBA".rstrip("AB") # both AB and BA are stripped
   ''
>>> "ABCABBA".rstrip("AB")
   'ABC'

İhtiyacım olan örnek! Bu nedenle rstrip ("\ r \ n") satırın sonunda '\ n' ve '\ r' harflerini birlikte kullanır!
Agostino

@Agostino Sağlamaya gerek yok "\r\n"Örneğin: ' spacious \n\r\n\r \n\n'.rstrip()üretir' spacious'
olibre

2
@olibre önerdiğiniz kod, başka boş / boşluk karakterleri de siler, bu da ihtiyaç duyulan şey olmayabilir. Aslında, sadece eol karakter kombinasyonlarını soymam gerekiyordu. Yine de, bunu belirttiğin için teşekkürler.
Agostino

4

Sadece kullan :

line = line.rstrip("\n")

veya

line = line.strip("\n")

Bu karmaşık şeylerden hiçbirine ihtiyacınız yok


2
Bunun chomp ile aynı olmadığını unutmayın.
16'da Flimm

4
s = '''Hello  World \t\n\r\tHi There'''
# import the module string   
import string
# use the method translate to convert 
s.translate({ord(c): None for c in string.whitespace}
>>'HelloWorldHiThere'

Normal ifade ile

s = '''  Hello  World 
\t\n\r\tHi '''
print(re.sub(r"\s+", "", s), sep='')  # \s matches all white spaces
>HelloWorldHi

\ N, \ t, \ r yerine

s.replace('\n', '').replace('\t','').replace('\r','')
>'  Hello  World Hi '

Normal ifade ile

s = '''Hello  World \t\n\r\tHi There'''
regex = re.compile(r'[\n\r\t]')
regex.sub("", s)
>'Hello  World Hi There'

Join ile

s = '''Hello  World \t\n\r\tHi There'''
' '.join(s.split())
>'Hello  World Hi There'

3

Orada normalde karşılaşmak satır sonları üç tipi vardır: \n, \rve \r\n. Oldukça basit bir düzenli ifade re.sub, yani r"\r?\n?$"hepsini yakalayabilir.

(Ve hepsini yakalamalıyız , değil mi?)

import re

re.sub(r"\r?\n?$", "", the_text, 1)

Son argümanla, chomp'ı bir dereceye kadar taklit ederek, yerine geçen olay sayısını sınırlandırıyoruz. Misal:

import re

text_1 = "hellothere\n\n\n"
text_2 = "hellothere\n\n\r"
text_3 = "hellothere\n\n\r\n"

a = re.sub(r"\r?\n?$", "", text_1, 1)
b = re.sub(r"\r?\n?$", "", text_2, 1)
c = re.sub(r"\r?\n?$", "", text_3, 1)

... nerede a == b == colduğunu True.


Tam teşekküllü düzenli ifadelere bile ihtiyacınız yok. rstrip("\r\n")bir catch-all. Deneyin print(text_2.rstrip('\r\n')).
Agostino

@Agostino: Doğru, str.rstrip()sorunu çözdüğü göz önüne alındığında . Hangi ihtiyaçlara sahip olduğunuza bağlıdır. Bu çözüm özellikle Üstelik geçen kaldırmak gerektiğinde durumlar için yapılır "\n", "\r"ya da "\r\n"ancak hepsi değil (birden varsa "\n"dizede). farklı bir dize olan re.sub(r"\r?\n?$", "", text_1, 1)döndürür "hellothere\n\n"ve text_1.rstrip("\r\n")döndürür "hellothere".
internetional

Söylemeye çalıştığım şey: Bu str.strip()bir catch-all bazen çok sorun.
internetional

1

Hızla ilgili endişeleriniz varsa (dizelerinizde looong bir listeniz olduğunu varsayalım) ve newline char'ın doğasını biliyorsanız, dize dilimleme aslında rstrip'ten daha hızlıdır. Bunu göstermek için küçük bir test:

import time

loops = 50000000

def method1(loops=loops):
    test_string = 'num\n'
    t0 = time.time()
    for num in xrange(loops):
        out_sting = test_string[:-1]
    t1 = time.time()
    print('Method 1: ' + str(t1 - t0))

def method2(loops=loops):
    test_string = 'num\n'
    t0 = time.time()
    for num in xrange(loops):
        out_sting = test_string.rstrip()
    t1 = time.time()
    print('Method 2: ' + str(t1 - t0))

method1()
method2()

Çıktı:

Method 1: 3.92700004578
Method 2: 6.73000001907

İşlevlerin içinde muhtemelen "küresel döngüler" kullanmam gerektiğini biliyorum, ama bu da işe yarıyor.
Stephen Miller

Bu test .. yanlış değil adil olarak method1sadece son karakteri, ne olursa olsun kapalı dorarken ilk çekler, eğer dize sonu istenmeyen karakterler içeriyor ve bazı bulundu yalnızca, onları doğruyor. Lütfen karakterleri kontrol edin ve hedefi test edin ! method2.rstrip()method1
spky

Cevaba girişte söylediğim gibi: Newline karakterinin doğasını biliyorsanız, bu yararlıdır. Eğer evet ise, bir tür karakter kontrolü yapmanız ya da sadece rstrip kullanmanız gerekir. Ben rstrip için "haksız" olmak istemiyordu, ama sadece bazı durumlarda dikkate değer olabilir önemsiz bir fark göstermek.
Stephen Miller

1

Bu hem windows hem de linux için çalışacaktır (sadece yeniden çözüm arıyorsanız, re sub ile biraz pahalı)

import re 
if re.search("(\\r|)\\n$", line):
    line = re.sub("(\\r|)\\n$", "", line)


3
Neden re.searchihtiyacınız olanı kullanıyorsunuz re.sub?
wjandrea

0

Önce bölünmüş çizgiler, sonra istediğiniz herhangi bir ayırıcıyla birleştirin:

x = ' '.join(x.splitlines())

cazibe gibi çalışmalı.


-1

Hepsini yakala:

line = line.rstrip('\r|\n')

5
rstripdüzenli ifade almaz. "hi|||\n\n".rstrip("\r|\n")döner"hi"
Flimm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.