2016-04-07 2 views
0

У меня есть файл .txt, где есть список элементов, которые выглядят следующим образом:Как сохранить формат текстового файла при чтении текстового файла через Python?

BLAH 
ONE 
TWO 
THREE 
FOUR 

Я в настоящее время с помощью Python, чтобы прочитать файл .txt и распечатать строки текста. Проблема, с которой я сталкиваюсь, заключается в том, что на печатных строках отображается символ новой строки \n и запятая. Похоже, что так, когда я распечатать данные из файла .txt:

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

Я попытался с помощью в попытке .replace("\n,", ""), по крайней мере, избавиться от нежелательных символов, но не кажется, что работать , Как я могу получить тот же формат из файла .txt с помощью команд Python?

По желанию, вот мой код:

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

Мой желаемый результат выглядит следующим образом:

BLAH 
ONE 
TWO 
THREE 
FOUR 
+0

Фактически вы сохраняете формат, когда вы читаете его как строку, потому что это именно то, что эти \ n указывают на вас. Однако из-за внешнего вида запятая указывает, что вы, вероятно, использовали readlines() для этого, который поместит каждую строку в качестве элемента в списке. Пожалуйста, покажите свой код и укажите точный результат, который вы ожидаете от своего кода. – idjaw

+0

Я отредактировал мое сообщение с запрошенной вами информацией. – Patr3xion

ответ

2

Как и предполагалось, вы используете readlines, который даст вам список. Где каждый элемент в списке является строкой из вашего файла. Вам не нужно делать эту полную замену '['. Вы должны понимать, что у вас есть список.

Итак, делая file.readlines(), вы будете иметь:

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

Если вы используете file.read() вместо и распечатать результат этого:

BLAH 
ONE 
TWO 
THREE 
FOUR 

Имейте в виду, вы все еще есть «\ n ', потому что вы на самом деле нужно, чтобы иметь выход выше, так как' \ n 'на самом деле является специальным символом, означающим «новая строка».

Таким образом, чтобы повторно написать свой код, вы можете просто (вам не нужно указать «г», так как это «г» по умолчанию):

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

Отлично, большое спасибо. Я новичок в Python, и это будет очень полезно для меня в будущем. – Patr3xion

+0

@ Patr3xion Вы очень желанны. Удачи. – idjaw

0

readlines возвращение линии ваш файл в виде списка, но затем вы применяете функцию str к списку, который преобразует список в строку; вот почему вы получаете ненужные [ и ].

Если вы просто хотите читать весь файл, вы можете сделать следующее

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

избежать Кроме того, используя file в качестве имени переменной, потому что это встроенный тип питона.

0

Хорошо это ясно теперь, когда я вижу свой код :)

readlines(), как хорошо, как for цикл будет возвращать список. Вы используете фреймворк str() в списке, который, я думаю, не будет работать. Я предполагаю, что ответ idjaw является правильным.Вы также можете попробовать:

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

Примечание довольно. Ваш выход будет: «BLAH \ n, ONE \ n, TWO \ n, THREE \ n, FOUR'' – idjaw

Смежные вопросы