Python 檔案操作隨記

2021-10-04 02:04:55 字數 3295 閱讀 1095

個人覺得需要熟知的:

需要了解的:

檔案操作open函式理解:

open(file, mode='r', buffering=-1, encoding=none, errors=none, newline=none, closefd=true, opener=none)

#file: 必需,檔案路徑(相對或者絕對路徑)。

#mode: 可選,檔案開啟模式

#buffering: 設定緩衝

#encoding: 一般使用utf8

#errors: 報錯級別

#newline: 區分換行符

#closefd: 傳入的file引數型別

#opener:可以通過呼叫*opener*方式,使用自定義的開啟器。底層檔案描述符是通過呼叫*opener*或者*file*, *flags*獲得的————目前沒搞懂這個引數的作用

直接上操作例子:

fil=open("2.txt","r+") # 讀寫模式a,a+在檔案結尾追加;w、w+在檔案開頭,原有資訊會被刪除;有檔案則讀寫,無檔案則建立

str1=fil.read(2) # read(2)當前位置向後讀取兩位元組內容

print("寫操作前讀去內容:",str1," 指標當前位置:",fil.tell()) # tell()或者當前位置

fil.write("0123456789q") # write()寫操作

fil.write("mmn")

print("寫操作完成後,指標當前位置:",fil.tell())

print()

print("\n檔名稱:",fil.name)

print("檔案操作模式:",fil.mode)

print("檔案操作是否關閉狀態:",fil.closed)

print()

fil.close()

print("關閉檔案操作後,檔案操作關閉狀態:",fil.closed)

寫操作前讀去內容:    指標當前位置: 0

寫操作完成後,指標當前位置: 14

檔名稱: 2.txt

檔案操作模式: r+

檔案操作是否關閉狀態: false

寫操作前讀去內容,讀取長度2: 34 from設為0,移動3,指標當前位置: 5

seek()函式可以將指標指向指定位置,seek(offset [,from])

說明:from為1或2時,檔案需是按二進位制檔案模式開啟:

fil=open("2.txt","rb+") 

print("檔案讀取內容:",fil.read())

# seek(offset [,from])方法改變當前檔案的位置。offset變數表示要移動的位元組數。from變數指定開始移動位元組的參考位置。

# from為0將指標重新定位檔案開頭

fil.seek(3,0)

print("寫操作前讀去內容,讀取長度2:",fil.read(2)," from設為0,移動3,指標當前位置:",fil.tell())

# from設為1,則使用當前的位置作為參考位置。

fil.seek(3,1)

print("from設為1,移動3,指標當前位置:",fil.tell())

# from被設為2,那麼該檔案的末尾將作為參考位置

fil.seek(-3,2)

print("from設為2,移動3,指標當前位置:",fil.tell())

fil.close()

print("關閉檔案操作後,檔案操作關閉狀態:",fil.closed)

檔案讀取內容: b'0123456789qmmn'

寫操作前讀去內容,讀取長度2: b'34' from設為0,移動3,指標當前位置: 5

from設為1,移動3,指標當前位置: 8

from設為2,移動3,指標當前位置: 11

關閉檔案操作後,檔案操作關閉狀態: true

檔案內容讀取補充

import sys

fil=open("2.txt","r+")

print ("讀取整行的資料為: ",fil.readline())

print ("讀取下一行的資料為: ",fil.__next__())

print ("read讀取的資料為: ",fil.read())

# 重新設定檔案讀取指標到開頭

fil.seek(0, 0)

lines = fil.readlines()

print ("lines讀取的資料為: %s" % (lines))

print ("lines[2]讀取的資料為: ",lines[2]) # 從0開始算位,即2則是第三個數

print ("lines讀取的資料行數為: ",lines.__len__())

for idx in lines:

sys.stdout.write(idx)

# print(idx.replace('\n',''))

print()

print ("位置:",fil.tell())

fil.close()

檔案內容:

a6b5

c4d3

e2f1

g7

執行結果:

讀取整行的資料為:  a6

讀取下一行的資料為: b5

read讀取的資料為: c4

d3e2

f1g7

lines讀取的資料為: ['a6\n', 'b5\n', 'c4\n', 'd3\n', 'e2\n', 'f1\n', 'g7']

lines[2]讀取的資料為: c4

lines讀取的資料行數為: 7

a6b5

c4d3

e2f1

g7位置: 26

import os

# 重新命名檔案

os.rename("readt.txt","2.txt")

# 刪除檔案

os.remove("1.txt")

# 建立資料夾3

os.mkdir("3")

# 獲取當前目錄

print(os.getcwd())

# 修改當前目錄

os.chdir("d:\3")

# rmdir()方法刪除目錄,目錄名稱以引數傳遞。

os.rmdir("3")

Linux檔案操作隨記

int open const char pathname,int flags int open const char pathname,int flags,mode t mode 必選之一flags 解析o rdonly 唯讀 readonly 定義為0 o wronly 只寫 writeonly ...

python初學隨記

語言特點 開源 跨平台,擴充套件性強 類庫多 主流開發工具 pycharm 學習版本 python3.6.5 基礎 注釋用 基本資料型別 4種 整數 int 浮點數float 字串str 布林值bool true false 字典分支 if 表示式 elif 表示式 else 了解方法 input ...

python語法隨記

1 sample 序列a,n 功能 從序列a中隨機抽取n個元素,並將n個元素生以list形式返回。2 字元對應的unicode值 ord 你的字元 3 unicode對應的字元 chr 2034 4 map 方法func,序列1,序列2,功能 將序列中每個元素依次作為方法func的引數,返回 fun...