запись вывода функции печати в текстовый файл - PullRequest
1 голос
/ 23 марта 2020

Я хочу сохранить «содержимое» в новый текстовый файл в python. Мне нужно иметь все слова в нижнем регистре, чтобы можно было найти частоту слова. '' 'text.lower ()' '' не работает. Вот код:

text=open('page.txt', encoding='utf8')
for x in text:
print(x.lower())

Я хочу сохранить результаты печати в новый текстовый файл. Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 23 марта 2020

Вы открываете файл page.txt для чтения, но он не открыт для записи. Поскольку вы хотите сохранить в новый текстовый файл, вы также можете открыть new_page.txt, где вы пишете все строки в page.txt в нижнем регистре:


# the with statement is the more pythonic way to open a file
with open('page.txt') as fh:

    # open the new file handle in write mode ('w' is for write, 
    # it defaults to 'r' for read
    with open('new_page.txt', 'w') as outfile:
        for line in fh:
            # write the lowercased version of each line to the new file
            outfile.write(line.lower())

Важно отметить, что with утверждение исключает необходимость закрытия файла даже в случае ошибки

1 голос
/ 23 марта 2020

Вы можете использовать параметр file в print, чтобы напрямую распечатать вывод print(...) в нужный файл.

text=open('page.txt', encoding='utf8')
text1=open('page1.txt', mode='x',encoding='utf8') #New text file name it according to you
for x in text:
    print(x.lower(),file=text1)
text.close()
text1.close()

Примечание. Используйте with при работе с файлами. Поскольку вам не нужно явно использовать .close, это позаботится об этом.

0 голосов
/ 23 марта 2020
import sys 
stdoutOrigin=sys.stdout 
sys.stdout = open("yourfilename.txt", "w")
#Do whatever you need to write on the file here.
sys.stdout.close()
sys.stdout=stdoutOrigin
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...