open()返回乙個檔案物件,open(filename,mode)
f = open('workfile','w')
第乙個引數是包含檔名的字串,第二個引數可以是包含一些字元的字串
'r':僅讀取檔案, 'w':僅寫入檔案,'a'開啟檔案以進行新增的模式
'r+'開啟檔案進行讀取和寫入,模式引數是可選的。'r'如果省略,將被假定。
'b'附加模式的檔案將以二進位制模式開啟。此模式應用於所有不包含文字的檔案。
如果不使用with關鍵字,則應呼叫發f.close(),關閉檔案並立即釋放檔案使用的所有系統資源。
如何讀取純文字的檔案:
def main():
f = open(' 檔名', 'r')
print(f.read())
f.close()
if __name__ == '__main__':
main()
open函式指定的檔案不存在或者無法開啟,會引起異常狀況,導致程式崩潰,我們可以用python的異常機制對可能在執行時發生狀況的**進行適當的處理:
def main():
f = none
try:
f =open('c:\dafef\desktop2916734751.txt', 'r')
print(f.read())
except filenotfounderror:
print('無法開啟指定的檔案')
except lookuperror:
print('指定了未知的編碼')
except unicodedecodeerror:
print('讀取檔案時解碼錯誤')
finally:
if f:
f.close()
if __name__ == '__main__':
main()
用with處理,在處理檔案時,最好使用關鍵字,即使在某個時候引發了異常,檔案在其套件完成後也會正確關閉,使用with語句,相對於try-finally塊短得多。
def main():
try:
with open('c:\dafef\desktop2916734751.txt', 'r') as f:
print(f.read())
except filenotfounderror:
print('無法開啟指定的檔案')
except lookuperror:
print('指定了未知的編碼')
except unicodedecodeerror:
print('讀取檔案時解碼錯誤')
if __name__ == '__main__':
main()
在try**塊的後面跟上乙個或多個except來捕獲可能出現的異常情況。
除了read方法讀取以外還可以用for-in迴圈逐行讀取和readlines將檔案按行讀取到乙個列表容器中:
import time
def main():
with open(' ','r')as f:
print(f.read())
#for in 逐行讀取
with open('','r') as f:
for line in f:
print(line, end='')
time.sleep(0.5)
print()
#讀取檔案按行讀取到列表中
with open('','r') as f:
lines = f.readlines()
print(lines)
if __name__ == '__main__':
main()
寫檔案時將檔案模式設定為'w'
如何將1-100間的素數寫入兩個檔案中:
from math import sqrt
def is_prime(n):
assert n > 0
for factor in range(2,int(sqrt(n))+1):
if n % factor == 0:
return false
return true if n != 1 else false
def main():
filenames = ('z.txt', 'b.txt')
fs_list =
try:
for filename in filenames:
for number in range(1, 100):
if is_prime(number):
if number < 50:
fs_list[0].write(str(number) + '\n')
elif number < 100:
fs_list[1].write(str(number) + '\n')
except ioerror as ex:
print(ex)
print('寫檔案時發生錯誤')
finally:
for fs in fs_list:
fs.close()
print('操作完成')
if __name__ == '__main__':
main
讀寫json檔案
讀取檔案:
import json
test =
print(test)
print(type(test))
json_str = json.dumps(test)
print(json_str)
print(type(json_str))
使用python中的json模組將字典或列表以json格式儲存到檔案中:
import json
def main():
mydict =
try:
with open('data.json','w') as fs:
json.dump(mydict, fs)
except ioerror as e:
print(e)
print('儲存資料完成')
if __name__ == '__main__':
main
json模組主要有四個比較重要的函式,分別是:
dump- 將python物件按照json格式序列化到檔案中,
dumps - 將python物件處理成json格式的字串,
load - 將檔案中的json資料反序列化成物件,
loads - 將字串的內容反序列化成python物件。
檔案寫入和讀取
最近在提高自己程式設計能力,拿一些現實的小指令碼練下。該指令碼為python語言,主要涉及模組os。功能 將控制台輸入文字逐行儲存,和讀取。輸入逐行儲存 import os filename input please enter file name file open filename,w whil...
讀取和寫入plist檔案
plist檔案是標準的xml檔案,在cocoa中可以很簡單地使用。這裡介紹一下使用方法 以下 在mac和iphone中均適用。寫入plist檔案 nsmutabledictionary dict nsmutabledictionary alloc initwithcontentsoffile sam...
HDFS檔案讀取和寫入
讀取檔案 一 讀取方式一 寫入哪個datanode是不確定的,主要尋找讀取速度較快的datanode 怎麼找到這種datanode,從以下幾個方面 是否有本機位置,本機架位置,本機房位置 依次重試讀取檔案,直到讀取檔案成功 二 讀取方式二 backupread 每次讀取時,client會並行試著讀取...