Python學習_06_檔案、IO

來源:互聯網
上載者:User

標籤:

檔案對象

python中的檔案操作和c語言比較類似,包括一些緩衝、位移量的方式。

檔案對象可以通過open()、file()兩個內建方法建立,兩個方法並沒有什麼不同,使用方法和c語言中的fopen()類似:

file_object = open(file_name, access_mode=‘r’, buffering=-1)

其中access_mode表示開啟檔案,r表示唯讀,w表示唯寫,r+,w+表示讀寫,a表示追加等;buffering表示緩衝方式,負值表示預設緩衝方式,0表示不緩衝,1表示行緩衝,大於1的值表示緩衝區的大小,一般情況下使用預設緩衝即可。

在perl中經常會用到管道的方式,通過open IN,”gunzip -cd $gzfile|” or die $!; 的方式輕鬆實現從壓縮檔中讀取內容,python中也可以通過os.popen()實現管道操作,注意的是,最後一層管道的|需要省略,因為popen()預設就是從管道中讀取。

檔案輸入:

1. read()方法,指定讀取一定個數的位元組到字串中,如果不指定位元組或者為負值,則讀取所有的內容;

2. readline()方法,讀取一行內容,如果指定的參數size小於一行長度,則只返回 size個位元組到字串中;

3. readlines()方法,會讀取所有的行並且返回一個字串列表,選擇性參數代表返回的最大位元組數,但是仍然需要湊齊緩衝區大小;

使用迭代器,並且配合for迴圈和readline()方法,是比較好的輸入方式:

for line in file_object.readline():
? ? print line?

檔案輸出:

1. write()方法,像檔案寫入字串

2. writelines()方法,將一個字串列表寫入到檔案,或者是返回字串的可迭代對象

檔案位移量:

1. tell()方法可以返回當前在檔案中的位置

2. seek(offset, whence=0)方法,移動檔案中的指標,whence=0表示從檔案開始位置移動offset個位移量,1表示從當前位置移動offset個位移量,2表示從檔案末尾移動offset個位移量

內建方法:

file.close():關閉檔案控制代碼,並且將緩衝區的內容寫入到檔案中

file.fileno():返迴文件描述符;

file.flush():立即重新整理檔案緩衝區

內建屬性:

file.name:檔案名稱,file.mode:檔案開啟檔案,file.encoding:檔案編碼方式,file.closed:檔案是否被關閉等

標準輸入輸出錯誤流:

sys模組中可以通過sys.stdin,sys.stdout,sys.syderr訪問標準輸入輸出錯誤流,內建方法raw_input()通常從sys.stdin接收輸入

sys模組還可以通過sys.argv屬性來訪問環境參數,argv[0]為指令碼本身

檔案系統

在os模組中包含作業系統功能的主要介面,包括檔案的相關操作:

os.getcwd():返回當前工作目錄,os.listdir():列出指定目錄下的相關檔案(包括子目錄),chdir():改變目前的目錄,symlink():建立符號連結,remove():刪除檔案,rename():重新命名檔案

os.path 模組中的路徑相關操作:

os.path.basename:返迴文件名,dirname():返回目錄名,split():返回(dirname(),basename())元組,get*time():返回各種事件,getsize()返迴文件大小,exists():指定路徑是否存在,isdir():是否存在指定路徑且為一個目錄,isfile():指定目錄是否存在且為一個檔案等等

其他相關模組

bz2、csv、gzip/zlib、tarfile、zipfile等

Python學習_06_檔案、IO

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.