簡體   English   中英

這個Python代碼在這里出了什么問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM