2015-03-04 3 views
1

У меня есть .txt файл с имеет следующий формат:Append в каждой строке текстового файла определенную строку, используя Python

/Users/my_user/folder1/myfile.dat 
/Users/my_user/folder2/myfile.dat 
/Users/my_user/folder3/myfile.dat 
. 
. 
. 
so on 

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

/Users/my_user/folder1/myfile.dat,/Users/my_user/folder1/otherfile.dat 
/Users/my_user/folder2/myfile.dat,/Users/my_user/folder1/otherfile.dat 
/Users/my_user/folder3/myfile.dat,/Users/my_user/folder1/otherfile.dat 
. 
. 
. 
so on 

до сих пор я пытался в цикле:

with open("test.txt", "a") as myfile: 
    myfile.write("append text") 

Но я только пишу в конце файла.

ответ

2

Вы можете использовать функцию re.sub.

Чтобы добавить в начале каждой строки.

with open("test.txt", "r") as myfile: 
    fil = myfile.read().rstrip('\n') 
with open("test.txt", "w") as f: 
    f.write(re.sub(r'(?m)^', r'append text', fil)) 

Чтобы добавить в конец каждой строки.

with open("test.txt", "r") as myfile: 
    fil = myfile.read().rstrip('\n') 
with open("test.txt", "w") as f: 
    f.write(re.sub(r'(?m)$', r'append text', fil)) 
+0

Я попробовал его, и он пишет перед уже существующим текстом в соответствующей строке. Как он может писать в конце? – gelazari

+0

, который вы запрашиваете для добавления в начале каждой строки. –

+0

oops yes. Я думал, что это было очевидно из примеров, которые я опубликовал, но в любом случае я редактировал свой пост, так как это было непонятно. Как я могу сделать это после окончания строки? – gelazari

0

Вы можете попробовать сделать что-то вроде этого:

with open(file_name, 'r') as f: 
    file_lines = [''.join([x.strip(), string_to_add, '\n']) for x in f.readlines()] 

with open(file_name, 'w') as f: 
    f.writelines(file_lines) 
Смежные вопросы