Python:介紹寫讀檔、消除空白、分割資料、指針位置
前言
今天將會示範如何使用python的讀檔、寫檔、分割,直接看範例更能夠了解到你的需求。
將學習到
- read
- write
- strip
- end
- split
- seek、tell
環境設定
win10 Anaconda的jupyter(6.0.3)
開始工作
開啟
open
、關閉檔案close
開啟檔案f = open(檔名, 模式)
模式分為三種'r'
唯讀模寫:僅可讀,無法對此檔案作內容更改
'w'
寫入模式(覆寫):寫入內容,會從頭開始覆寫,如果沒有檔案則會新增一個
'a'
寫入模式(續寫):這與’w’
不同之處為他會從上次的游標繼續寫
例如我要寫檔,f = open("text.txt", 'w')
關閉檔案f.close()
讀取檔案
read
#程式:
f = open(“test.txt”,”r”)
print(f.read())
f.close()結果:
nice to meet you
you too
read()也可以限制說要讀取幾個字串默認則是全讀進來
例如f.read(6)
則會讀取到第6個位置
#程式:
f = open("test.txt","r")for i in f.readline():#這邊是readline
print (i)
f.close()#結果:
n
i
c
e
t
o
m
e
e
t
y
o
u
這邊使用readline()也可以加入限制,例如readline(3)
#程式:
f = open(“test.txt”,”r”)
for i in f.readlines():#這邊是readlines
print (i)
f.close()#結果:
nice to meet you
you too
跟上段差別就是s,分別是readlines()
、readline()
寫入檔案
#write
f = open(‘test_write.txt’, ‘w’)
f.write(“nice to meet you\nyou too”)
f.close()
test_write.txt因為沒有則會新建一個在User資料夾裡“\n”是換行的意思
消除空白
strip()
#程式:
print(“有空白”)
f = open(“test_strip.txt”,”r”)
for i in f.readlines():
print (i)
f.close()print(“\n消除空白”)
f = open(“test_strip.txt”,”r”)
for i in f.readlines():
print (i.strip())
f.close()#結果:
有空白
nice to meet you
you too
消除空白
nice to meet you
you too
分割資料
end=
、split()
串列分割使用end=
#程式:
#串列分割
l=[1,2,3,4]#程式:
print(“用逗號分開”)
for i in l:
print(i,end=’, ‘)print(“\n用空白分開”)
for i in l:
print(i,end=’ ‘)print(“\n用逗號分開且尾巴不會多逗號”)
print(“,”.join(str(i) for i in l))#結果:
用逗號分開
1, 2, 3, 4,
用空白分開
1 2 3 4
用逗號分開且尾巴不會多逗號
1,2,3,4
雖然說是分割,實質上是在資料後面加上空白或是逗號,這樣做能夠方便後續的資料處裡
字串分割使用split()
#程式:
#字串分割
web = “https://goodinfo.tw/StockInfo/index.asp"
print(web.split(“/”))#以'/'分割,默認為全部都分割
print(web.split(“/”,2))#分割2次
print(web.split(“/”)[3])#取得分割後第4個位置
print(web.split(“/”,3)[0])#分割3次且取得第1個位置
print(“ — — — — — — — — — — — “)
w1, w2, w3 = web.split(“/”,2)#也可以分配給不同變數,w2為空白
print(w1)
print(w2)
print(w3)#成果:
['https:', '', 'goodinfo.tw', 'StockInfo', 'index.asp']
['https:', '', 'goodinfo.tw/StockInfo/index.asp']
StockInfo
https:
----------------------
https:
goodinfo.tw/StockInfo/index.asp
指針位置
f.seek()
、f.tell()
有時會因為檔案寫入或讀取時沒有正確,指針可能會有跑位問題,這時可以用上f.seek()
來設定指針位置,如果要游標從頭開始則f.seek(0)
也有人會檔案進行到一半時忘記寫到哪裡,則可以用f.tell()
來確認目前位置
完整程式碼
小結
主要都是示範如何使用,如果你對於以上的內容有建議歡迎提出,一起討論絕對是成長的捷徑!!
參考資料
Python 初學第十二講 — 檔案處理
【python】输出列表元素,以空格/逗号为分隔符
Python split() 函数 拆分字符串 将字符串转化为列