標籤:file pytho python3 命令列參數 with argv 功能 close 檔案
# Auther: Aaron Fan
‘‘‘
思路:
目的是為了修改yesterday這個檔案,但是因為無法直接去修改這個檔案,所以需要先把修改好的內容寫入高yesterday.new這個檔案中,
然後再把yesterday.new的內容覆蓋到yesterday這個檔案中
f = open(‘yesterday‘,‘r‘,encoding=‘utf-8‘)
f_new = open(‘yesterday.new‘,‘w‘,encoding=‘utf-8‘)
for line in f:
if "肆意的快樂等我享受" in line:
line = line.replace("肆意的快樂等我享受","肆意的快樂等著Aaron去享受")
f_new.write(line)
f.close()
f_new.close()
#改進版(實作類別似sed的功能):
import sys
f = open(‘yesterday‘,‘r‘,encoding=‘utf-8‘)
f_new = open(‘yesterday.new‘,‘w‘,encoding=‘utf-8‘)
#命令列參數,需要被改的字串
find_str = sys.argv[1]
#命令列參數,需要被改成哪個字串
replace_str = sys.argv[2]
for line in f:
if find_str in line:
line = line.replace(find_str,replace_str)
f_new.write(line)
f.close()
f_new.close()
#需要在命令列下去測試(源檔案yesterday需要存在的),使用以下命令:
#python file檔案的修改_實作類別似sed的功能.py "肆意的快樂等我享受" "肆意的快樂等著Aaron去享受"
‘‘‘
#使用with語句的改進版(with的作用就是,當with語句執行完後會自動幫你關閉檔案,所以檔案操作請用with):
import sys
with open(‘yesterday‘,‘r‘,encoding=‘utf-8‘) as f, \
open(‘yesterday.new‘,‘w‘,encoding=‘utf-8‘) as f_new:
#命令列參數,需要被改的字串
find_str = sys.argv[1]
#命令列參數,需要被改成哪個字串
replace_str = sys.argv[2]
for line in f:
if find_str in line:
line = line.replace(find_str,replace_str)
f_new.write(line)
#需要在命令列下去測試(源檔案yesterday需要存在的),使用以下命令:
#python file檔案的修改_實作類別似sed的功能.py "肆意的快樂等我享受" "肆意的快樂等著Aaron去享受"
python3-file的修改實作類別似shell中sed的功能