Почему этот код Python не копирует текст из одного файла в другой? - PullRequest
1 голос
/ 10 июля 2020

Итак, я пытаюсь скопировать текст из одного файла .txt в другой. Однако когда я открываю второй файл .txt, программа не записывает туда строки. Это код, который я использую.

chptfile = open('v1.txt',"a+",encoding="utf-8")
chptfile.truncate(0)
chptfile.write("nee\n")
chptfile.write("een")

lines = chptfile.readlines()
chptv2 = open ('v2.txt',"a+",encoding="utf-8")
for line in lines:
    chptv2.write(line)

chptv2.close()
chptfile.close()

Ответы [ 2 ]

2 голосов
/ 10 июля 2020

Указатель файла chptfile находится в конце файла после того, как вы выполняете запись, поэтому вы должны вызвать метод seek, чтобы переместить указатель файла обратно в начало файла, прежде чем вы сможете прочитать его содержимое. :

chptfile = open('v1.txt',"a+",encoding="utf-8")
chptfile.truncate(0)
chptfile.write("nee\n")
chptfile.write("een")
chptfile.seek(0)
lines = chptfile.readlines()
...
0 голосов
/ 10 июля 2020

Как и в ответе blhsing, вам нужно вызвать метод seek(). Однако в вашем коде есть и плохая практика. Вместо открытия и закрытия файла используйте менеджер контекста :

with open('v1.txt',"a+",encoding="utf-8") as chptfile:
    chptfile.truncate(0)
    chptfile.write("nee\n")
    chptfile.write("een")
    chptfile.seek(0)
    lines = chptfile.readlines()

with open ('v2.txt',"a+",encoding="utf-8") as chptv2:
    chptv2.write(''.join(line))
...