1. 程式人生 > >python3-讀寫檔案

python3-讀寫檔案

*os.path模組*

Windows上的倒斜槓以及os x 和Linux 上的正斜槓

Windows上執行os.path.join()函式
這裡寫圖片描述
返回’user\bin\spam’ 請注意,倒斜槓有兩個,因為每個倒斜槓需要由另一個倒斜槓字元來轉義)。如果在OS X 或Linux 上呼叫這個函式,該字串就會是’user/bin/spam’。
建立檔名稱的字串,os.path.join()函式就會很有用
這裡寫圖片描述

當前工作目錄

os.getcwd()函式可以取得當前工作路勁的字串
os.chdir()改變它
這裡寫圖片描述
如果要更改當前工作目錄不存在,python就會報錯。
注意: 當前工作目錄(或當前目錄)是標準術語,沒有當前工作資料夾這種說法。

絕對路徑與相對路徑

‘絕對路徑’,總是從根資料夾開始
‘相對路勁’,它相對於程式的當前工作目錄。
這裡寫圖片描述

用os.makedirs()建立新資料夾

osmakedirs()將建立所有必要的中間資料夾,目的確保完整路徑名存在
這裡寫圖片描述

這裡寫圖片描述

*處理絕對路勁*

os.path.abspath()

將返回引數的絕對路徑的字串。這將相對路徑轉換為絕對路徑的更簡單方法。

這裡寫圖片描述

os.path.isabs(),如果引數是一個絕對路徑,就返回True,如果引數是一個相對路徑,就返回False。
這裡寫圖片描述
//資料夾和檔案可能與我的不同,嘗試用你計算機上存在的資料夾來完成

os.path.relpath()

將返回從start路徑到path的相對路徑的字串,如果沒有提供start,就使用當前工作目錄為開始路徑。
這裡寫圖片描述

os.path.dirname() 將返回一個字串,它包含path引數中最後一個斜槓之前的所有內容。
os.path.basename() 將返回一個字串,它包含path引數中最後一個斜槓之後的所有內容。
這裡寫圖片描述

os.path.split() 獲取得這倆個字串的元組

這裡寫圖片描述

可以呼叫os.path.dirname()os.path.basename(),將它們的返回值放在一個元組中從而得到同樣的元組。
這裡寫圖片描述

os.path.split()不會接受一個檔案路徑並返回每個資料夾的字串的列表。
使用split()字串方法,並根據os.path.sep

中的字串進行分割。
這裡寫圖片描述

檢視檔案大小和資料夾內容

os.path.getsize() 將返回patn引數中檔案的位元組數。
os.path.listdir() 將返回檔名字串的列表。
這裡寫圖片描述

如果想知道這個目錄下所有檔案的總位元組數,就可以同時使用os.path.getsize()
os.listdir()
這裡寫圖片描述
//注意使用了 os.path.join()來連線資料夾名稱和當前的檔名。

檢查路徑有效性

如果path引數所知的檔案或資料夾存在,os.path.exists() 將返回True,否則返回False。

如果path引數存在,並且是一個檔案,os.path.isfile() 將返回True,否則返回False。

如果path引數存在,並且是一個資料夾,os.path.isdir() 將返回True,否則返回False。

這裡寫圖片描述

檔案讀寫過程

python3中,讀寫檔案有3個步驟:

  1. 呼叫open()函式,返回一個File物件。
  2. 呼叫File物件的read()或write()方法。
  3. 呼叫File物件的close()方法,關閉該檔案。

用open()函式開啟檔案

先建立一個hello.txt檔案,讀模式是預設的模式,如果不希望依賴於python的預設方式,可以明確指出該模式,向open()傳入字元’r’,作為第二個引數。
這裡寫圖片描述