用Notepad++打下列的程式碼,
另存為ex16.py.
from sys import argv
script, filename = argv
print (f"We're going to erase {filename}.")
print ("If you don't want that, hit CTRL-C (^C).")
print ("If you do want that, hit RETURN")
input ("?")
print ("Opening the file...")
target = open (filename, 'w')
print ("Truncating the file. Goodbye!")
target.truncate()
print ("Now I'm going to ask you for three lines")
line1 = input ("line 1: ")
line2 = input ("line 2: ")
line3 = input ("line 3: ")
print ("I'm going to write these to the file.")
target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")
print ("And finally, we close it.")
target.close()
然後用Windows的cmd, 執行python打開它. (並在後面加了1個參數: ex16_sample.txt)
C:\Users\Peter\Desktop\Python\LP3THW>python .\ex16.py ex16_sample.txt We're going to erase ex16_sample.txt. If you don't want that, hit CTRL-C (^C). If you do want that, hit RETURN ? Opening the file... Truncating the file. Goodbye! Now I'm going to ask you for three lines line 1: 111AAA line 2: 222BBB line 3: 333CCC I'm going to write these to the file. And finally, we close it. C:\Users\Peter\Desktop\Python\LP3THW>
完成
此時會自行產生一個檔案ex16_sample.txt
內容就是我當時輸入的
C:\Users\Peter\Desktop\Python\LP3THW>type ex16_sample.txt 111AAA 222BBB 333CCC C:\Users\Peter\Desktop\Python\LP3THW>
完成
這次的練習主要就是讀寫文件.
open: 開啟文件. 相關參數查詢如下
C:\Users\Peter\Desktop\Python\LP3THW>python -m pydoc openopen (filename,'w'): 不用w 無法寫入文件.
'r' open for reading (default)
'w' open for writing, truncating the file first
'x' create a new file and open it for writing
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)
read: 讀取文件內容.
readline: 只讀取文件內容的某一行.
truncate: 清空文件. 小心小心.
write("ABC"): 將ABC寫入文件.
close: 關閉文件.
我們來修改一下程式碼.
Line 12 - 13, 打開文件看一下原本的內容.
Line 14, 重新打開一次文件, w是有清空文件的參數, 再加上utf-8的編碼.
Line 17, #將這行注釋起來不用了, 因為line14 有w參數(清空文件).
line 25, 將原本程式碼的line 25 - 30, 濃縮成一行完成.
from sys import argv
script, filename = argv
print (f"We're going to erase {filename}.")
print ("If you don't want that, hit CTRL-C (^C).")
print ("If you do want that, hit RETURN")
input ("?")
print ("Opening the file...")
target = open (filename)
print (target.read())
target = open (filename, 'w', encoding = "UTF-8")
print ("Truncating the file. Goodbye!")
#target.truncate()
print ("Now I'm going to ask you for three lines")
line1 = input ("line 1: ")
line2 = input ("line 2: ")
line3 = input ("line 3: ")
print ("I'm going to write these to the file.")
target.write(f"{line1}\n{line2}\n{line3}")
print ("And finally, we close it.")
target.close()
結果,
C:\Users\Peter\Desktop\Python\LP3THW>python .\ex16.py ex16_sample.txt We're going to erase ex16_sample.txt. If you don't want that, hit CTRL-C (^C). If you do want that, hit RETURN ? Opening the file... 111AAA 222BBB 333CCC Truncating the file. Goodbye! Now I'm going to ask you for three lines line 1: 1a1a1a line 2: 2b2b2b line 3: 3c3c3c I'm going to write these to the file. And finally, we close it. C:\Users\Peter\Desktop\Python\LP3THW>
ex16_sample.txt文件也被修改了.
C:\Users\Peter\Desktop\Python\LP3THW>type ex16_sample.txt 1a1a1a 2b2b2b 3c3c3c C:\Users\Peter\Desktop\Python\LP3THW>
最初發表 / 最後更新: 2018.08.15 / 2018.08.15

0 comments:
張貼留言