[英]what is wrong here in this python code?
這段代碼在這里有什么問題:我只是傳遞一個現有文件,然后使用os.remove()
刪除它,然后用其他內容編寫它。 但是文件顯示的是先前的內容,而不是更新的內容。 此處的代碼段:
#!/usr/bin/env python
import sys
import os
arg1=sys.argv[1]
_list = ['a', 'b', 'c']
os.remove(arg1)
hd = open(arg1, 'w')
for line in _list:
hd.write(line)
hd.close()
假設我的文件包含以下內容: output1 :
p
q
r
s
刪除文件( os.remove()
)后,重新創建相同的文件並覆蓋列表中的內容。 預期輸出:
a
b
c
但是我得到的是output1
而不是預期的輸出。
您可能只想打開文件並寫入當前內容,而無需先刪除文件:
with open(arg1, "w") as f:
for line in _list:
f.write(line)
這就是open()的工作方式。
第一個參數是包含文件名的字符串。 第二個參數是另一個包含一些字符的字符串,這些字符描述了文件的使用方式。 當僅讀取文件時,模式可以為“ r”,僅用於寫入時為“ w”(具有相同名稱的現有文件將被刪除),並且“ a”打開文件以進行附加; 寫入文件的所有數據都會自動添加到末尾。 “ r +”打開文件以供讀取和寫入。 mode參數是可選的; 如果省略,則假定為“ r”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.