2015-06-17 2 views
-1

Я хочу добавить строки в существующий файл в python. Я написал следующие два файлаДобавление строк для существующего файла в python

print_lines.py

while True: 
    curr_file = open('myfile',r) 
    lines = curr_file.readlines() 
    for line in lines: 
     print lines 

add_lines.py

curr_file = open('myfile',w) 
curr_file.write('hello world') 
curr_file.close() 

, но когда я запускаю первый print_lines.py, а затем add_lines.py я не получаю новый я добавляю. Как я могу это решить?

+0

В коде есть синтаксическая ошибка. open() принимает аргументы символов, такие как open ('myfile', 'w') – Aditya

+0

'open ('myfile', 'w')' должен открыть файл в режиме добавления 'open ('myfile', 'a')' –

ответ

1

Проблема заключается в коде -

curr_file = open('myfile',w) 
curr_file.write('hello world') 
curr_file.close() 

Второй аргумент должен быть строкой, которая указывает режим, в котором файл должен быть openned, вы должны использовать a, который указывает append. Режим

curr_file = open('myfile','a') 
curr_file.write('hello world') 
curr_file.close() 

w указывает write, он будет перезаписывать существующий файл с новым содержанием, он не добавляет в конец файла.

1

На print_lines.py:

1 - Вы зацикливание, while True, вам нужно добавить разрывное условие для выхода из цикла во время или удалить время цикла, как у вас есть цикл.

2 - Аргумент 2 из curr_file = open('myfile',r) должна быть строка: curr_file = open('myfile','r')

3 - Закройте файл в конце: curr_file.close()

Сейчас в add_lines:

1 - Открыть файл для добавления не для написания над ним, если вы хотите добавить строки: curr_file = open('myfile','a')

2 - То же, что и в предыдущем файле, Аргумент 2 из myfile = open('myfile',w) должен быть строкой: curr_file = open('myfile','a')

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