整理了一下python 中文件的輸入輸出及主要介紹一些os模塊中對文件系統的操作。
文件輸入輸出
1、內建函數open(file_name,文件打開模式,通用換行符支持),打開文件返回文件對象。
2、對打開文件進行讀取時,readline()與readlines()的區別在于是否一次性的讀取所有的內容,并將每行的信息作為列表中的一個子項。
例如:文件test.txt中
1,3,4
2,35,6
分別用readline與readlines對其進行讀取
r=file_object.readline();#結果為1,3,4r=file_object.readlines();#結果為['1,3,4/n', '2,35,6']
3、文件迭代
使用迭代器的file.next()
用于讀取文件的下一行。相比for循環,更復雜,一般采用 for循環直接迭代。
4、文件移動
seek(off,whence=0)
可以在文件中移動文件指針到不同的位置,,從文件中移動off個操作標記(文件指針),正往結束方向移動,負往開始方向移動。如果設定了whence參數,就以whence設定的起始位為準,0代表從頭開始,1代表當前位置,2代表文件最末尾位置。
tell()可以展示 我們的移動過程,展示我們的當前位置
5、os模塊
6、文件寫入f.write();writelines()接受一個字符串列表作為參數
需要手動輸入換行符/n;
fobj=open('test','w');#直接在指定路徑下打開test1 ,如果沒有則直接生成,但若存在,則出錯;fobj.write('foo/n');fobj.write('bar/n');fobj.close();#結果為#foo#barimport os;file_object=open(r'E:/Python/iostream_test/test.txt','r+');aline=raw_input("Enter a line ('.'to quit):");if aline !=".": file_object.write('%s%s' % (aline,os.linesep));#在文件test.txt中寫入一條字符串結果為txt 文件中的一個內容
標準文件
一般程序一執行,就可以訪問3個標準文件,分別是標準輸入(一般是鍵盤)、標準輸出(到顯示器的緩沖輸出)和標準錯誤(到屏幕的非緩沖輸出),這里的緩沖、非緩沖是指open()的三個參數。
文件系統
對文件系統的訪問大多通過python的os模塊實現。該模塊是python訪問操作系統功能的主要接口。
os除了對進程和進程運行環境進行管理外,os模塊還負責處理大部分的文件系統操作,包括刪除/重命名文件,遍歷目錄樹,已經管理文件訪問權限等。
另一個os.path 模塊可以完成針對路徑名的操作,它提供函數 完成管理和操作文件路徑中的各個部分,獲取文件或者子目錄信息,文件路徑查詢等操作。
針對os path的操作,操作對象E:/Python/iostream_test文件及其下的test.txt文件
os.path.exists(),
檢測指定路徑的文件或者目錄是否存在。
import os;for tempdir in ('/test.txt',r'E:/Python/iostream_test/test.txt'): if os.path.exists(tempdir): print 'yes'; break;else: print 'no temp directory available'; tempdir=' ';#結果為yes,# 若in中改為('/test.txt',r'D:/Python/iostream_test/test.txt'),則結果為no temp directory availableos.path.isdir(),檢測指定了路徑是否存在且為一個目錄,只能是目錄,否則報錯。import os;for tempdir in ('/test.txt',r'E:/Python/iostream_test/test.txt'): #in中檢測的是文件,而非目錄,所以未輸出yes if os.path.isdir(tempdir): print 'yes'; break;else: print 'no temp directory available'; tempdir=' ';# 輸出no temp directory availableimport os;for tempdir in ('/test.txt',r'D:/Python/iostream_test/test.txt'):#指定路徑在D盤,因而不存在 if os.path.isdir(tempdir): print 'yes'; break;else: print 'no temp directory available'; tempdir=' ';import os;for tempdir in ('/test.txt',r'E:/Python/iostream_test'): if os.path.isdir(tempdir): print 'yes'; break;else: print 'no temp directory available'; tempdir=' ';#輸出的是yes
新聞熱點
疑難解答