Python 檔案讀寫操作

2021-07-23 19:53:07 字數 4874 閱讀 5387

一、python中對檔案、資料夾操作時經常用到的os模組和shutil模組常用方法。

1.得到當前工作目錄,即當前python指令碼工作的目錄路徑: os.getcwd()

2.返回指定目錄下的所有檔案和目錄名:os.listdir()

3.函式用來刪除乙個檔案:os.remove()

4.刪除多個目錄:os.removedirs(r」c:\python」)

5.檢驗給出的路徑是否是乙個檔案:os.path.isfile()

6.檢驗給出的路徑是否是乙個目錄:os.path.isdir()

7.判斷是否是絕對路徑:os.path.isabs()

8.檢驗給出的路徑是否真地存:os.path.exists()

9.返回乙個路徑的目錄名和檔名:os.path.split()

例子:

複製** **如下:

os.path.split('/home/swaroop/byte/code/poem.txt') 結果:('/home/swaroop/byte/code', 'poem.txt')

10.分離副檔名:os.path.splitext()

11.獲取路徑名:os.path.dirname()

12.獲取檔名:os.path.basename()

13.執行shell命令: os.system()

14.讀取和設定環境變數:os.getenv() 與os.putenv()

15.給出當前平台使用的行終止符:os.linesep windows使用'\r\n',linux使用'\n'而mac使用'\r'

16.指示你正在使用的平台:os.name 對於windows,它是'nt',而對於linux/unix使用者,它是'posix'

17.重新命名:os.rename(old, new)

18.建立多級目錄:os.makedirs(r"c:\python\test")

19.建立單個目錄:os.mkdir("test")

20.獲取檔案屬性:os.stat(file)

21.修改檔案許可權與時間戳:os.chmod(file)

22.終止當前程序:os.exit()

23.獲取檔案大小:os.path.getsize(filename)

二、檔案操作方法大全

1.os.mknod("test.txt") 建立空檔案

2.fp = open("test.txt",w) 直接開啟乙個檔案,如果檔案不存在則建立檔案

3.關於open 模式:

複製** **如下:

w:以寫方式開啟,

a:以追加模式開啟 (從 eof 開始, 必要時建立新檔案)

r+:以讀寫模式開啟

w+:以讀寫模式開啟 (參見 w )

a+:以讀寫模式開啟 (參見 a )

rb:以二進位制讀模式開啟

wb:以二進位制寫模式開啟 (參見 w )

ab:以二進位制追加模式開啟 (參見 a )

rb+:以二進位制讀寫模式開啟 (參見 r+ )

wb+:以二進位制讀寫模式開啟 (參見 w+ )

ab+:以二進位制讀寫模式開啟 (參見 a+ )

fp.read([size]) #size為讀取的長度,以byte為單位

fp.readline([size]) #讀一行,如果定義了size,有可能返回的只是一行的一部分

fp.readlines([size]) #把檔案每一行作為乙個list的乙個成員,並返回這個list。其實它的內部是通過迴圈呼叫readline()來實現的。如果提供size引數,size是表示讀取內容的總長,也就是說可能唯讀到檔案的一部分。

fp.write(str) #把str寫到檔案中,write()並不會在str後加上乙個換行符

fp.writelines(seq) #把seq的內容全部寫到檔案中(多行一次性寫入)。這個函式也只是忠實地寫入,不會在每行後面加上任何東西。

fp.close() #關閉檔案。python會在乙個檔案不用後自動關閉檔案,不過這一功能沒***,最好還是養成自己關閉的習慣。 如果乙個檔案在關閉後還對其進行操作會產生valueerror

fp.flush() #把緩衝區的內容寫入硬碟

fp.fileno() #返回乙個長整型的"檔案標籤"

fp.isatty() #檔案是否是乙個終端裝置檔案(unix系統中的)

fp.tell() #返回檔案操作標記的當前位置,以檔案的開頭為原點

fp.next() #返回下一行,並將檔案操作標記位移到下一行。把乙個file用於for … in file這樣的語句時,就是呼叫next()函式來實現遍歷的。

fp.seek(offset[,whence]) #將檔案打操作標記移到offset的位置。這個offset一般是相對於檔案的開頭來計算的,一般為正數。但如果提供了whence引數就不一定了,whence可以為0表示從頭開始計算,1表示以當前位置為原點計算。2表示以檔案末尾為原點進行計算。需要注意,如果檔案以a或a+的模式開啟,每次進行寫操作時,檔案操作標記會自動返回到檔案末尾。

fp.truncate([size]) #把檔案裁成規定的大小,預設的是裁到當前檔案操作標記的位置。如果size比檔案的大小還要大,依據系統的不同可能是不改變檔案,也可能是用0把檔案補到相應的大小,也可能是以一些隨機的內容加上去。

三、目錄操作方法大全

1.建立目錄

os.mkdir("file")

2.複製檔案:

shutil.copyfile("oldfile","newfile") #oldfile和newfile都只能是檔案

shutil.copy("oldfile","newfile") #oldfile只能是資料夾,newfile可以是檔案,也可以是目標目錄

3.複製資料夾:

4.shutil.copytree("olddir","newdir") #olddir和newdir都只能是目錄,且newdir必須不存在

5.重新命名檔案(目錄)

os.rename("oldname","newname") #檔案或目錄都是使用這條命令

6.移動檔案(目錄)

shutil.move("oldpos","newpos")

7.刪除檔案

os.remove("file")

8.刪除目錄

os.rmdir("dir") #只能刪除空目錄

shutil.rmtree("dir") #空目錄、有內容的目錄都可以刪

9.轉換目錄

os.chdir("path") #換路徑

四、檔案綜合操作例項

將資料夾下所有名稱加上'_fc'

python**:

複製** **如下:

# -*- coding:utf-8 -*-

import re

import os

import time

#str.split(string)分割字串

#'連線符'.join(list) 將列表組成字串

def change_name(path):

global i

ifnot os.path.isdir(path) and

not os.path.isfile(path):

return false

if os.path.isfile(path):

file_path = os.path.split(path) #分割出目錄與檔案

lists = file_path[1].split('.') #分割出檔案與副檔名

file_ext = lists[-1] #取出字尾名(列表切片操作)

#注意這裡的i是乙個陷阱

#或者#img_ext = 'bmp|jpeg|gif|psd|png|jpg'

#if file_ext in img_ext:

# print('ok---'+file_ext)

elif os.path.isdir(path):

for x in os.listdir(path):

change_name(os.path.join(path,x)) #os.path.join()在路徑處理上很有用

img_dir = 'd:\\xx\\xx\\images'

img_dir = img_dir.replace('\\','/')

start = time.time()

i = 0

change_name(img_dir)

c = time.time() - start

print('程式執行耗時:%0.2f'%(c))

print('總共處理了 %s 張'%(i))

python 讀 寫檔案操作

python中也提供類似於c語言中的open read write函式,下面是我根據看過的內容的乙個python讀 寫檔案的 段 讀檔案 在python的執行資料夾中新建乙個 123.txt 的檔案,輸入2341.rfp open 123.txt 開啟乙個 123.txt 得到乙個檔案物件 分配記憶...

python檔案讀寫操作

讀寫檔案是最常見的io操作,python內建了讀寫檔案的函式,用法和c是相容的。在磁碟上讀寫檔案的功能都是由作業系統提供的,現在作業系統不允許普通的程式直接操作磁碟 所以,讀寫檔案就是請求作業系統開啟乙個檔案物件 通常稱為檔案描述符 然後,通過作業系統提供的介面從這個檔案物件中讀取資料 讀檔案 或者...

Python檔案讀寫操作

1.讀檔案 with open xx as file object temp file object.read print temp.rstrip 因為末尾有換行符,會多一行空格with open xx as file object for line in file object print lin...