1. 程式人生 > >Python3 檔案流及讀寫和OS函式

Python3 檔案流及讀寫和OS函式

讀和寫檔案

open() 將會返回一個 file 物件,基本語法格式如下:

open(filename, mode)
  • filename:包含了你要訪問的檔名稱的字串值。
  • mode:決定了開啟檔案的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個引數是非強制的,預設檔案訪問模式為只讀(r)。
1.檔案讀寫open(filename,mode)
read()讀寫所有檔案內容,write()寫入,readline()讀一行
readlines()讀成了一個列表\n
tell()獲取檔案當前位置
seek(n,())定位指標,0;從開頭移動1;從當前位置移動
2.從末尾往前,此方法只能移動二進位制
close()
迴圈讀取檔案:(1)with open(filename,mod) as f:f,read() (2) f=open() for line in f:print(line) close() (3) from urllib import request 爬取網頁內容 f=request,urlopen("網址") ff=open(,'w+') ff.write(str(respone.read())) close() 4.pickle序列化與反序列化 open pickle.dump(obj,file) close() 反序列 open() obj=pickle.load(file) close()

不同模式開啟檔案的完全列表:

模式描述
r以只讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。
rb以二進位制格式開啟一個檔案用於只讀。檔案指標將會放在檔案的開頭。
r+開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。
rb+以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。
w開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。
wb以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。
w+開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。
wb+以二進位制格式開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。
a開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
ab以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
a+開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
ab+以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

Python3 File(檔案) 方法

file 物件使用 open 函式來建立,下表列出了 file 物件常用的函式:

序號方法及描述
1

關閉檔案。關閉後文件不能再進行讀寫操作。

2

重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案, 而不是被動的等待輸出緩衝區寫入。

3

返回一個整型的檔案描述符(file descriptor FD 整型), 可以用在如os模組的read方法等一些底層操作上。

4

如果檔案連線到一個終端裝置返回 True,否則返回 False。

6

從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。

8

讀取所有行並返回列表,若給定sizeint>0,返回總和大約為sizeint位元組的行, 實際讀取值可能比 sizeint 較大, 因為需要填充緩衝區。

11

從檔案的首行首字元開始截斷,截斷檔案為 size 個字元,無 size 表示從當前位置截斷;截斷之後後面的所有字元被刪除,其中 Widnows 系統下的換行代表2個字元大小。

12

Python3 OS 檔案/目錄方法

os 模組提供了非常豐富的方法用來處理檔案和目錄。常用的方法如下表所示:

序號方法及描述
12改變一個檔案的訪問許可權,該檔案由引數fd指定,引數mode是Unix下的檔案訪問許可權。
13修改一個檔案的所有權,這個函式修改一個檔案的使用者ID和使用者組ID,該檔案由檔案描述符fd指定。
14強制將檔案寫入磁碟,該檔案由檔案描述符fd指定,但是不強制更新檔案的狀態資訊。
16返回一個開啟的檔案的系統配置資訊。name為檢索的系統配置的值,它也許是一個定義系統值的字串,這些名字在很多標準中指定(POSIX.1, Unix 95, Unix 98, 和其它)。
17返回檔案描述符fd的狀態,像stat()。
18返回包含檔案描述符fd的檔案的檔案系統的資訊,像 statvfs()
19強制將檔案描述符為fd的檔案寫入硬碟。
22返回一個當前工作目錄的Unicode物件
23如果檔案描述符fd是開啟的,同時與tty(-like)裝置相連,則返回true, 否則False。
28返回path指定的資料夾包含的檔案或資料夾的名字的列表。
29設定檔案描述符 fd當前位置為pos, how方式修改: SEEK_SET 或者 0 設定從檔案開始的計算的pos; SEEK_CUR或者 1 則從當前位置計算; os.SEEK_END或者2則從檔案尾部開始. 在unix,Windows中有效
31從原始的裝置號中提取裝置major號碼 (使用stat中的st_dev或者st_rdev field)。
33遞迴資料夾建立函式。像mkdir(), 但建立的所有intermediate-level資料夾需要包含子資料夾。
34從原始的裝置號中提取裝置minor號碼 (使用stat中的st_dev或者st_rdev field )。
35以數字mode的mode建立一個名為path的資料夾.預設的 mode 是 0777 (八進位制)。
39開啟一個新的偽終端對。返回 pty 和 tty的檔案描述符。
41建立一個管道. 返回一對檔案描述符(r, w) 分別為讀和寫
43從檔案描述符 fd 中讀取最多 n 個位元組,返回包含讀取位元組的字串,檔案描述符 fd對應檔案已達到結尾, 返回一個空字串。
45刪除路徑為path的檔案。如果path 是一個資料夾,將丟擲OSError; 檢視下面的rmdir()刪除一個 directory。
49刪除path指定的空目錄,如果目錄非空,則丟擲一個OSError異常。
50獲取path指定的路徑的資訊,功能等同於C API中的stat()系統呼叫。
54返回與終端fd(一個由os.open()返回的開啟的檔案描述符)關聯的程序組
55設定與終端fd(一個由os.open()返回的開啟的檔案描述符)關聯的程序組為pg。
56

os.tempnam([dir[, prefix]])

Python3 中已刪除。返回唯一的路徑名用於建立臨時檔案。
57

os.tmpfile()

Python3 中已刪除。返回一個開啟的模式為(w+b)的檔案物件 .這檔案物件沒有資料夾入口,沒有檔案描述符,將會自動刪除。
58

os.tmpnam()

Python3 中已刪除。為建立一個臨時檔案返回一個唯一的路徑
59返回一個字串,它表示與檔案描述符fd 關聯的終端裝置。如果fd 沒有與終端裝置關聯,則引發一個異常。
63寫入字串到檔案描述符 fd中. 返回實際寫入的字串長度

相關推薦

Python3 檔案OS函式

讀和寫檔案open() 將會返回一個 file 物件,基本語法格式如下: open(filename, mode)filename:包含了你要訪問的檔名稱的字串值。mode:決定了開啟檔案的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個引數是非強制的,預設檔案訪問

JAVA檔案

package trsdf; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j

C++檔案

在看C++程式設計思想中,每個練習基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含義,在看了幾位大牛的博文後,進行整理和總結: 這裡主要是討論fstream的內容: [java] view plain copy print

BMP影象的結構灰度化

1.文件目的 本文件主要給出24位真彩BMP影象的結構、讀寫和灰度化方法。 2.一般BMP影象的結構 一般的bmp檔案的結結構主要包括檔案頭,BMP資訊頭,調色盤,點陣圖資料內容 (1)BMP檔案頭(14位元組) ,檔案的第0位元組到第13位元組為BMP影象的檔案

C語言檔案操作的二進位制定位(fwrite、fread、fseek)

二進位制寫檔案中用到fwrite函式,這個函式對檔案進行寫操作的時候寫進去的資料就是二進位制的資料包括後面的fread函式,進行讀操作的時候也是直接讀二進位制,這也是在對檔案操作時,這兩個函式與fpr

圖片二次採集壓縮 ---》需要清單檔案宣告註冊許可權

MainActivity package com.example.renzhili20181107; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitma

Python檔案(File)操作生成器yield

open函式在記憶體中建立快取區,將磁碟上的內容複製到此處。檔案內容讀入到檔案物件緩衝區後,檔案物件將緩衝區視為非常大的列表,其中每個元素都有一個索引。檔案物件按位元組(大約每個字元)來對檔案物件緩衝區索引計數。許多檔案方法隱式使用當前檔案位置。例如,呼叫readline方法後,當前檔案位置移動到下一個回車處

C#常用IO檔案

1.檔案系統 (1)檔案系統類的介紹     檔案操作類大都在System.IO名稱空間裡。FileSystemInfo類是任何檔案系統類的基類;FileInfo與File表示檔案系統中的檔案;DirectoryInfo與Directory表示檔案系統中的資料夾;Path表

淺談JAVA位元組檔案

InputStream  此抽象類是表示位元組輸入流的所有類的超類。需要定義 InputStream 的子類的應用程式必須始終提供返回下一個輸入位元組的方法。  int available()  返回此輸入流方法的下一個呼叫方可以不受阻塞地從此輸入流讀取(或跳過)的位

java以位元組形式檔案

java中以位元組流的形式讀取檔案採用的是FileInputStream,將指定路徑的檔案以位元組陣列的形式迴圈讀取,程式碼如下:public void ReadFileByByte(String p

C++檔案對多行多個字串的處理

C++讀寫檔案中的字串 今天幫人做了個簡單的作業,沒想到花時間最多的不是演算法而是檔案的讀寫,還有對讀入字串的分割處理。晚上寫作業的時候又用到了對字串的處理,這裡記錄一下。 小白第一次寫部落格,做的不好的請多多指正。 題目如下: Retail.dat檔案中包含了某零售商店

VC INI檔案 GetProfileString,WriteProfileString函式的使用

一、向ini檔案中寫入資訊的函式1. 把資訊寫入系統的win.ini檔案 BOOL WriteProfileString(       LPCTSTR lpAppName, // 節的名字,是一個以0結束的字串       LPCTSTR lpKeyName, // 鍵的名字,是一個以0結束的字串。若為NUL

java IO之三 使用緩衝檔案

一、通過BufferedReader和BufferedWriter來讀寫檔案      使用緩衝流的好處是,能夠更高效的讀寫資訊,原理是將資料先緩衝起來,然後一起寫入或者讀取出來。經常使用的是readLine()方法,表示一次讀取一行資料。 package org.exa

python檔案整理

**在windows上面,路徑的書寫使用反斜槓作為資料夾之間的分隔符;在OS X或者Linux上則是是用正斜槓。 python上對檔案進行操作要使用到os這個模組。 1.os模組和os.path模組

涉及多平臺版本的中英文字元檔案轉換

參考文件: 1. 在多個編譯版本中,中英文在傳遞時,可能採用不同的格式  _UNICODE定義時,中英文字元都按unicode格式儲存(CString使用CStringW-wchar_t型儲存) MBCS時,英文字元1個位元組,中文字元兩個位元組(CSt

實驗二 影象檔案轉換(BMP轉YUV)

實驗二 影象檔案的讀寫和轉換(BMP轉YUV) 一、實驗基本原理 1.BMP點陣圖檔案格式 BMP(全稱Bitmap)是Windows作業系統中的標準影象檔案格式,可以分成兩類:裝置相關點陣圖(DDB)和裝置無關點陣圖(DIB),採用位對映儲存格式,除了影象深度可選(1

Spring實現動態資料來源,支援動態新增、刪除設定權重分離

當專案慢慢變大,訪問量也慢慢變大的時候,就難免的要使用多個數據源和設定讀寫分離了。 在開題之前先說明下,因為專案多是使用Spring,因此以下說到某些操作可能會依賴於Spring。 在我經歷過的專案中,見過比較多的讀寫分離處理方式,主要分為兩步: 1、對於開發人員,要

檔案檔案指標的移動

read 函式 -#include <unistd.h> -ssize_t read(int fd, void *buf, size_t count); 從fd 所指的檔案中讀取count 個位元組到buf 中。返回實際讀取到的位元

pandas學習之concat合併CSV檔案

讀取CSV檔案 讀取中文的CSV檔案中有中文,用“UTF-8”會出現亂碼問題,解決: import pandas as pd import numpy as np data=pd.read_csv('C:/Users/elenawang/Desktop/

R語言使用RMySQL連接Mysql數據庫

技術分享 fcm list adl 創建數據庫 package install sql安裝 packages 簡單說下安裝過程,一般不會有問題,重點是RMySQL的使用方式。 系統環境說明 Redhat系統:Linux 460-42.6.32-431.29.2.el6.