2014-12-27 1 views
1

Прямо сейчас у меня есть файл.py и он печатает слово «Hello» в text.txt.Как я могу сказать python для редактирования другого файла python?

f = open("text.txt") f.write("Hello") f.close()

Я хочу сделать то же самое, но я хочу, чтобы напечатать слова «Hello» в файл Python. Скажите, что я хотел сделать что-то вроде этого:

f = open("list.py") f.write("a = 1") f.close

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

+0

Прежде всего, вы не можете писать в файл, открытый в режиме чтения. –

+0

Когда вы откроете его, в нем будет текст 'a = 1' (при условии, что вы откроете его в режиме записи). – BrenBarn

+0

Будьте осторожны со вторым кодом, он не закрывает файл – jamylak

ответ

1

Если вы хотите добавить новую строку в конец файла

with open("file.py", "a+") as f: 
    f.write("\na = 1") 

Если вы хотите, чтобы написать строку в начало файла, попробуйте создать новый один

with open("file.py") as f: 
    lines = f.readlines() 

with open("file.py", "w") as f: 
    lines.insert(0, "a = 1") 
    f.write("\n".join(lines)) 
+0

'a +' не нужно; 'a' достаточно. – chepner

1
with open("list.py","a") as f: 
    f.write("a=1") 

Это просто, как вы видите. Вы должны открыть этот файл в и написать режим (a). Также с открытым() метод безопаснее и понятнее.

Пример:

with open("list.py","a") as f: 
    f.write("a=1") 
    f.write("\nprint(a+1)") 

list.py

a=1 
print(a+1) 

Выход из list.py:

>>> 
2 
>>> 

Как видите, существует переменная в list.py под названием a, равным .

+0

Это перезапишет файл значением a = 1 – Greg

+0

'a' не читается + писать; это режим добавления. – chepner

1

Я бы рекомендовал вам указать режим открытия, когда вы открываете файл для чтения, записи и т. Д. Например:

для чтения:

with open('afile.txt', 'r') as f: # 'r' is a reading mode 
    text = f.read() 

для записи:

with open('afile.txt', 'w') as f: # 'w' is a writing mode 
    f.write("Some text") 

Если вы открываете файл с режимом 'W' (запись), старое содержимое файла будет удалено. Чтобы избежать этого режима добавления существует:

with open('afile.txt', 'a') as f: # 'a' as an appending mode 
    f.write("additional text") 

Для получения дополнительной информации, пожалуйста, прочитайте documentation.