2016-04-07 2 views
0

o kadar benziyor öğelerin listesini içeren bir .txt dosyası var. İçinde bulunduğum sorun, yazdırılan satırların \n satır karakterini ve birlikte virgül göstermesidir. Ben .txt dosyasından verileri yazdırırken O kadar benziyor: Ben en azından istenmeyen karakterlerin kurtulmak amacıyla bir .replace("\n,", "") kullanılarak denedimPython ile bir metin dosyası okurken metin dosyasının biçimini nasıl koruyabilirim? Şu anda bu .txt dosyası okuma ve metin satırı yazdırmak için Python kullanıyorum</p> <pre><code>BLAH ONE TWO THREE FOUR </code></pre> <p>:

BLAH \n, ONE \n, TWO \n, THREE \n, FOUR 

, ama bu çalışıyor gibi görünmüyor . Aynı formatı Python komutları aracılığıyla .txt dosyasından nasıl alabilirim?

file = open("plstemp.txt", "r") 
     abc=str(file.readlines()) 
     wow = abc.replace("[", "").replace("]", "").replace("'", "") 
     print(wow) 
     file.close() 

My İstenen çıkış aşağıdaki gibidir:

şüpheli olarak
BLAH 
ONE 
TWO 
THREE 
FOUR 
+0

. Ancak görünüşe bakılırsa, virgül, muhtemelen her satırı bir listede bir öğe olarak belirleyecek olan readlines() 'ı kullanmanız gerektiğini gösteriyor. Lütfen kodunuzu gösterin ve kodunuzdan beklediğiniz kesin çıktıyı sağlayın. – idjaw

+0

Gönderiyi istediğiniz bilgilerle düzenledim. – Patr3xion

cevap

2

, size bir liste verecektir readlines kullandığınız Talep üzerine

, işte kodudur. Listedeki her bir öğe dosyanızın bir satırı olduğunda. Bu değiştirmeyi '' yapmak zorunda değilsiniz. Burada aslında bir listenin olduğunu farketmelisin.

Yani, file.readlines() yapıyor, sen sahip olacaktır:

['BLAH\n', 'ONE\n', 'TWO\n', 'THREE\n', 'FOUR\n'] 

yerine file.read() kullanmak ve bunun sonucu çıktısını ise: Unutmayın

BLAH 
ONE 
TWO 
THREE 
FOUR 

, yine de '\ var n ', çünkü aslında ,'un çıktısını almanız gerektiğinden,' \ n 'aslında "newline" anlamına gelen özel bir karakterdir.

file = open("plstemp.txt") 
abc=file.read() 
file.close() 
print(abc) 
+0

Mükemmel, çok teşekkür ederim. Python’da yeniyim ve bu benim için çok yararlı olacak. – Patr3xion

+0

@ Patr3xion Çok hoş geldiniz. İyi şanslar. – idjaw

0

readlines dönüş hatları: (not varsayılan olarak "r" olduğundan "r" belirtmeniz gerekmez)

Yani, kodu yeniden yazmaya, sadece yapabilirim Dosyanız bir liste olarak, ancak listeye bir dize dönüştüren str işlevini uygularsınız; Bu yüzden istenmeyen [ ve ]'u aldınız.

basitçe bütün dosyasında okumak istiyorsanız

, bunun nedeni aşağıdaki

f = open("plstemp.txt", "r") 
wow = f.read() 
f.close() 
print(wow) 

Ayrıca değişken adı olarak file kullanmaktan kaçının yapabileceği yerleşik bir piton türü.

0

Tamam o for döngü listesini döndürür aswell, şimdi kodunuzu :)

readlines() görüyoruz daha açık. Çalışmayacağımı düşündüğüm bir listede str() fonction kullanıyorsunuz. idjaw'un cevabının doğru olduğunu farz ediyorum.Sen lutfen deneyebilirsiniz: Eğer bir dize olarak okuduğumda bu tam olduğu için aslında bu \ n sana belirten şey son biçimini sürdürmek vardır

file = open("plstemp.txt", "r") 
     abc=file.readlines() 
     wow = ",".join(abc) #joining a list into a string by commas as a separator 
     print(wow) 
     file.close() 
+0

Not oldukça. Çıktınız: '' BLAH \ n, BİR \ n, İKİ \ n, ÜÇ '\ n, DÖRTÜNÜ – idjaw

İlgili konular