檔案處理和函式簡介

2022-10-08 22:45:24 字數 2450 閱讀 4827

目錄檔案的修改

函式

#read在文字模式下,括號內地數字表示讀取指定的字元數

with open(r'a.txt', 'r', encoding='utf8') as f:

print(f.read(3))

print(f.read(3))

>>>你好世

>>>界 n

#read在二進位制模式下,粗氣指定的位元組數,在utf8中,通常漢字三個位元組,字母乙個位元組

with open(r'a.txt', 'rb') as f:

print(f.read(3))

print(f.read(3))

>>>你

>>>好

with open('a.txt','r',encoding='utf8') as f:

print(f.read())

f.seek(3,1)

print(f.read()) #儲存,seek(3,1),表示為相對當前游標向後移動三個位元組,而當前游標處於末尾,所有read()無法讀取內容因而報錯

with open('a.txt','rb') as f:

print(f.read(3).decode('utf8')) #讀取三個位元組的內容

f.seek(-3,2) #相對與末尾,向前移動三個位元組,然後讀取

print(f.read().decode)

>>>你

>>>xdn

'''seek方法可以控制游標的移動,無論什麼模式移動的基本單位都是位元組數

seek(offset,whence)

offset 控制的時光標的移動位數,正數從左向右,負數,從右向左

whence 表示游標的位置

0 回到檔案起始位置

1 游標當前位置

2 游標移動到檔案末尾

其中0可以用於文字文字模式,1和2只能用於二進位制模式

whence不穿引數,預設為0

'''

'''

機械硬碟上的資料有兩個狀態:

占有態自由態

刪除資料就是將資料的狀態改變成自由態,自由態的資料會被新的資料覆蓋。

檔案的內容也是寫死的,不能從中間新增新的內容,只能將老的內容刪除在新增新的

'''# 對檔案進行修該的思路1,將內容讀入記憶體,在記憶體中進行修改,在寫入硬碟覆蓋原檔案

優點:在修改檔案過程中,同一份檔案資料只有乙份

缺點:會過多的占用記憶體

with open('b.txt', 'r', encoding='utf8') as f:

data = f.read()

with open('b.txt', 'w', encoding='utf8') as f:

f.write(data.replace('張一蛋','jack'))

# 思路2,以讀的方式開啟原始檔,以寫的方式開啟乙個臨時檔案,一行行的讀取原始檔的內容,修改完後寫入臨時檔案,然後刪除原始檔,將臨時檔案重新命名

優點:不會占用過多記憶體

缺點:在檔案修改過程中同乙份資料存在兩份

'''

函式,相當乙個隨時隨地可重複使用的工具,他與迴圈有一些類似,都是要反覆的執行一段相同的**。但是不同的是,迴圈是在乙個固定的位置,通過條件判斷來確定是否執行;而函式存在的位置不固定,通過函式的呼叫來重複的執行函式體**

'''函式分為內建函式和自定義函式,內建函式就是python直譯器自帶的函式,例如len()、count()等。自定義函式則是我們自己定義的函式。

'''函式又分為有參函式和無參函式,有參函式呼叫時需要傳遞乙個引數,而無參函式則不用

'''eg:

s = 'hello world!'

# 有參函式

s.count('l')

>>>3

# 無參函式

s.len()

>>>12

def 函式名(引數1,引數2):

'''函式的注釋'''

函式**體

return 返回值

1.def

定義函式的關鍵字

2.函式名

類似與變數名,指代函式體**,命名規範與變數名一致

3.括號

函式名後面必須跟括號

4.引數

引數可以又多個或者沒有,作用是將資料傳遞給**體

5.冒號

表示又子**塊

6.函式注釋

用於解釋**功能使用方法等 當函式功能一目了然時可不寫

7.函式體**

函式的核心功能,呼叫函式時所執行的**

8.return

後面跟什麼,函式執行完後就會返回什麼

'''定義函式時,不會執行函式體**,只會檢查語法

呼叫函式需要使用函式名加括號

'''

檔案處理函式

這兩天在寫個遍歷檔案批處理的小工具,碰到幾個時間相關的函式,整理了下,說不定以後可能會再用到呢 判斷檔案是否存在 bool filei ists lpcstr filepath findclose hfind return true 獲取檔案最後修改時間距當前時間的差值 用於判斷該檔案是否正在寫的一...

檔案處理函式

前幾天參加鄭州悉知公司的校園招聘會,面試官問了很多有關檔案處理函式,當時回答的不是很少,雖然平時也經常用到有關檔案處理的函式,但是也沒對檔案處理函式做總結,檔案處理函式也是我們學習web開發中重要的一塊 這是回來之後對檔案處理函式的總結 basename 返回路徑中的檔名 c hgrp 改變檔案所屬...

檔案處理 函式

方式二函式 二 為何要有函式 三 如何用函式 函式中引數的分類 二 實參 with open a.txt mode r t encoding utf 8 as f print f.writable f.seek 7,0 f.write sb with open a.txt mode r t enco...