Добавить строку к каждой строке .txt файла в Python? - PullRequest
0 голосов
/ 10 мая 2018

Я хочу добавить текст к каждой строке в моем файле

Вот мой код

filepath = 'hole.txt'
with open(filepath) as fp:
    line = fp.readline()
    cnt = 1
    while line:
        #..........
        #want to append text "#" in every line by reading line by line 
        text from .txt file
        line = fp.readline()
        cnt += 1

Ответы [ 4 ]

0 голосов
/ 10 мая 2018

это помогает?

inputFile = "path-to-input-file/a.txt"
outputFile = "path-to-output-file/b.txt"
stringToAPpend = "#"

with open(inputFile, 'r') as inFile, open(outputFile, 'w') as outFile:
    for line in inFile:
        outFile.write(stringToAPpend+line)
0 голосов
/ 10 мая 2018

Предполагая, что вы можете загрузить полный текст в память, вы можете открыть файл, разделив его на строки, и для каждой строки добавьте «#». Тогда сохраните :-):

with open(filepath, 'r') as f:     # load file
    lines = f.read().splitlines()  # read lines

with open('new_file.txt', 'w') as f: 
    f.write('\n'.join([line + '#' for line in lines]))  # write lines with '#' appended
0 голосов
/ 10 мая 2018

Я предполагаю, что файл достаточно мал, чтобы хранить две его копии в памяти:

filepath = 'hole.txt'
with open(filepath, 'r') as f:
    original_lines = f.readlines()

new_lines = [line.strip() + "#\n" for line in original_lines]

with open(filepath, 'w') as f:
    f.writelines(new_lines)

Сначала мы открываем файл и читаем все строки в список. Затем новый список генерируется путем strip() добавления разделителей строки из каждой строки, добавления дополнительного текста и нового разделителя строки после него.

Затем последняя строка перезаписывает файл новыми измененными строками.

0 голосов
/ 10 мая 2018

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

filepath = "hole.txt"
with open(filepath) as fp:
    lines = fp.read().splitlines()
with open(filepath, "w") as fp:
    for line in lines:
        print(line + "#", file=fp)
...