python檔案操作與檔案的綜合應用

2021-08-18 05:50:45 字數 4535 閱讀 9315

在python,使用open函式,可以開啟乙個已經存在的檔案,或者建立乙個新檔案

open(檔名,訪問模式)

示例如下:

f = open('test.txt', 'w')
說明:

訪問模式說明r

以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

a開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

rb以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。

wb以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

ab以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

r+開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

w+開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

a+開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

rb+以二進位制格式開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

wb+以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

close( )

示例如下:

# 新建乙個檔案,檔名為:test.txt

f = open('test.txt', 'w')

# 關閉這個檔案

f.close()

使用write()可以完成向檔案寫入資料

demo:

f = open('test.txt', 'w')

f.write('hello world, i am here!')

f.close()

執行現象:

注意:使用read(num)可以從檔案中讀取資料,num表示要從檔案中讀取的資料的長度(單位是位元組),如果沒有傳入num,那麼就表示讀取檔案中所有的資料

demo:

f = open('test.txt', 'r')

content = f.read(5)

print(content)

print("-"*30)

content = f.read()

print(content)

f.close()

執行現象:

注意:就像read沒有引數時一樣,readlines可以按照行的方式把整個檔案中的內容進行一次性讀取,並且返回的是乙個列表,其中每一行的資料為乙個元素

#coding=utf-8

f = open('test.txt', 'r')

content = f.readlines()

print(type(content))

i=1for temp in content:

print("%d:%s"%(i, temp))

i+=1

f.close()

執行現象:

#coding=utf-8

f = open('test.txt', 'r')

content = f.readline()

print("1:%s"%content)

content = f.readline()

print("2:%s"%content)

f.close()

#coding=utf-8

oldfilename = input("請輸入要拷貝的檔案名字:")

oldfile = open(oldfilename,'r')

# 如果開啟檔案

if oldfile:

# 提取檔案的字尾

fileflagnum = oldfilename.rfind('.')

if fileflagnum > 0:

fileflag = oldfilename[fileflagnum:]

# 組織新的檔案名字

newfilename = oldfilename[:fileflagnum] + '[復件]' + fileflag

# 建立新檔案

newfile = open(newfilename, 'w')

# 把舊檔案中的資料,一行一行的進行複製到新檔案中

for linecontent in oldfile.readlines():

newfile.write(linecontent)

# 關閉檔案

oldfile.close()

newfile.close()

在讀寫檔案的過程中,如果想知道當前的位置,可以使用tell()來獲取

# 開啟乙個已經存在的檔案

f = open("test.txt", "r")

str = f.read(3)

print

"讀取的資料是 : ", str

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : ", position

str = f.read(3)

print

"讀取的資料是 : ", str

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : ", position

f.close()

如果在讀寫檔案的過程中,需要從另外乙個位置進行操作的話,可以使用seek()

seek(offset, from)有2個引數

demo:把位置設定為:從檔案開頭,偏移5個位元組

# 開啟乙個已經存在的檔案

f = open("test.txt", "r")

str = f.read(30)

print

"讀取的資料是 : ", str

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : ", position

# 重新設定位置

f.seek(5,0)

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : ", position

f.close()

demo:把位置設定為:離檔案末尾,3位元組處

# 開啟乙個已經存在的檔案

f = open("test.txt", "r")

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : ", position

# 重新設定位置

f.seek(-3,2)

# 讀取到的資料為:檔案最後3個位元組資料

str = f.read()

print

"讀取的資料是 : ", str

f.close()

有些時候,需要對檔案進行重新命名、刪除等一些操作,python的os模組中都有這麼功能

os模組中的rename()可以完成對檔案的重新命名操作

rename(需要修改的檔名, 新的檔名)

import os

os.rename("畢業**.txt", "畢業**-最終版.txt")

os模組中的remove()可以完成對檔案的刪除操作

remove(待刪除的檔名)

import os

os.remove("畢業**.txt")

實際開發中,有時需要用程式的方式對資料夾進行一定的操作,比如建立、刪除等

就像對檔案操作需要os模組一樣,如果要操作資料夾,同樣需要os模組

import os

os.mkdir("張三")

import os

os.getcwd()

import os

os.chdir("../")

import os

os.listdir("./")

import os

os.rmdir("張三")

Python 檔案與檔案操作

2.檔案的開啟和關閉 3.檔案的關閉 4.檔案內容讀取的常用方法 5.遍歷文字的常用方法 6.資料檔案的寫入 二.資料的格式化與處理 擴充套件 三.例項 1.檔案的型別 檔案是資料的抽象與集合。二進位制檔案 直接由位元0和1組成,沒有統一編碼,存在二進位制0和1的組織式結構 2.檔案的開啟和關閉 開...

Python檔案與資料夾操作

import os import shutil if name main print os.path.abspath print os.path.split d pypro h.py print os.path.splitext d pypro h.py if not os.path.exists ...

python 檔案與目錄操作

1 os.path 1.1 os.path.isabs path 是否是絕對路徑 1.2 os.path.isfile path 1.3 os.path.isdir path 1.4 os.path.islink path 是否是鏈結 但如果系統不支援鏈結,返回false 1.5 os.path.i...