Python:介紹寫讀檔、消除空白、分割資料、指針位置

基本介紹read、write、strip、end、split、seek、tell

MinKuan
6 min readAug 25, 2020

前言

今天將會示範如何使用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

先建立test.txt再python執行的資料夾裡,如果是預設則建立在User資料夾裡
#程式:
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() 函数 拆分字符串 将字符串转化为列

--

--