2014-12-27 27 views
1

現在,我有file.py文件,它將「Hello」一詞打印到text.txt中。如何告訴python編輯另一個python文件?

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

我想要做同樣的事情,但我想打印單詞「你好」到一個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)。另外與開放()方法是safier和更清晰。

實施例:

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

list.py從list.py

a=1 
print(a+1) 

輸出:

>>> 
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

相關問題