上篇有提到刪除檔案,要讓程式確認檔案存在才能刪除
import os
p = "mkdir.py"
ee = os.path.exists(p) #p存在?
print(ee)
如果要大量刪除建立的dir組可以這樣
import os
a = int(input(u'刪幾個呢?'))
for i in range(0, a):
i += 1
dir = "dir%d" %i
if os.path.exists(dir):
os.rmdir('./dir%d/' % i)
else:
print(u'dir不存在')
超久以前談到 stdio檔案流,就有類似方法。
(預設都可讀可寫)
a = input(u'請輸入副檔名')
open('test.%s' %a , 'w')
b = ('test.%s' % a)
不同的檔案會有不同的處理方式 像2進檔就不能用str寫入了,所以就需要切換模式控制。除了"w",其他模式要讓open()處理檔案,檔案需存在
w = 可寫可讀(預設建立檔案) 若檔案存在則會清除舊檔案
w+ = 可寫可讀 若檔案存在則會清除舊檔案
r = 讀取
r+ = 可寫可讀 但寫入資料指向開頭
a = 相當於append 寫入資料指向尾端
a+ = 可寫可讀 相當於append 寫入資料指向尾端
b = 轉為2進位文件
ab+ = 2進位文件的讀寫 寫入資料指向尾端
要進行寫入與讀取必須要先打開文件open()。而程式也一樣 所以讀寫前一定要先open()
import os
ra = input(u"增加文字")
f = open('news.txt' , 'w+') #覆寫
f.write("94")
f.write("87")
f = open('news.txt', 'a+') # 寫入EOF 不覆寫
f.write("%s" %ra)
讀檔案
#讀寫前一定先open()
f = open('news.txt', 'r+')
print(f.read())
#記得隨手關燈
f.close()
就像電腦的游標一樣 讓電腦清楚文字從哪裡寫入 預設檔案指向有頭跟尾。
需精確控制可用seek()方法控制指向。
f.seek(位移格數bit , 0) #指向文件開頭
f.seek(位移格數bit , 1) #指向預設位置
f.seek(位移格數bit , 2) #指向文件結尾
可控制寫入檔案位置
f = open('news.txt', 'w+')
f.write("9487Good")
f = open("news.txt" , 'rb+') #位移須為bin
f.seek(2)
f.write(b'O') #bin檔寫入
f.seek(1, 1)
f.write(b'M')
f.seek(-2, 2) #結尾倒退2格
f.write(b'G')
文件中常常會有中文字或其他國的語言。為了避免亂碼,必須設定適合該文字的編碼
像str前面標小u表示unicode(萬國碼),但畢竟只能在windows用。
如果要實現跨平台的語言 建議改用UTF-8編碼。
Ex:(檔案跟程式編碼改用UTF-8)
# coding=utf-8
f = open('news.txt', 'w+')
f.write("9487")
ra = input("增加文字")
#寫入文字編碼 UTF-8
f = open('news.txt', 'a+', encoding='UTF-8')
f.write("%s" %ra)
#開啟檔案也要用同編碼
f = open('news.txt', 'r+', encoding='UTF-8')