Python檔案的操作函式的使用

2021-10-02 02:48:04 字數 3056 閱讀 8551

字元編碼

二進位制和字元之間的轉換過程 --> 字元編碼

ascii,gbk,****,**** 每個國家都有自己的編碼方式

美國電腦記憶體中的編碼方式為ascii ; 中國電腦記憶體中的編碼方式為gbk , 美國電腦無法識別中國電腦寫的程式 , 中國電腦無法識別美國電腦寫的程式

現在硬碟中躺著 ascii/gbk/****/**** 編碼的檔案, 他們的編碼格式已經無法修改了, 所以記憶體**現unicode編碼, 記憶體中的unicode編碼方式可以識別 ascii/gbk/****/**** 編碼的檔案

用unicode編碼方式執行了 ascii/gbk/****/**** 編碼的檔案, 最後還是要裝入硬碟, 裝入硬碟早期用unicode存進去,但是 他在識別ascii的時候, 會把8位數字轉換成16位數字存入硬碟, 浪費空間, 所以出現了utf8(與unicode對應,並且壓縮unicode編碼的字元)

utf8 能識別其他國家的編碼,只識別unicode, utf8目前還不能放在記憶體,. 但是現在寫的**都是utf8, 歷史遺留ascii/gbk/****/**** 編碼的檔案遲早消失/淘汰,要麼被轉換成utf8格式.所以遲早有一天記憶體中也是utf8.

python2 和 python3字元編碼的區別

開啟python直譯器

python直譯器相當於文字編輯器,讀取二進位制轉化為普通字元 a = 1

對轉化後的普通字元進行解釋(定義變數就要新開闢記憶體空間存放變數)

python2

用檔案指定的編碼方式儲存定以後的變數

python3

用unicode編碼方式儲存定以後的變數

以後寫檔案以什麼格式儲存,就以什麼格式讀取

檔案的 三種開啟方式

文字模式:t

二進位制模式:b

t/b無法單獨使用,只能和r/w/a一起使用

with管理檔案上下文

with open() as f: # 自動關閉

一、檔案的兩種方式

檔案的資料是存放於硬碟上的,因而只存在覆蓋,不存在修改這麼一說,我們平時看到餓的修改檔案,都是模擬出來的效果,具體的說有兩種實現方式。

1.1 方式一

將硬碟存放的該檔案的內容全部載入到記憶體,在記憶體中是可以修改的,修改完畢後,再由記憶體覆蓋到硬碟(word,vim,nodpad++等編輯器)。

在學習過程中有什麼不懂得可以加我的

python學習扣扣qun,784758214

與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容

import os

with open('37r.txt') as fr, \

open('37r_swap.txt', 'w') as fw:

data = fr.read() # 全部讀入記憶體,如果檔案很大,會很卡

data = data.replace('tank', 'tanksb') # 在記憶體中完成修改

fw.write(data) # 新檔案一次性寫入原檔案內容

# 刪除原檔案

os.remove('37r.txt')

# 重新命名新檔名為原檔名

os.rename('37r_swap.txt', '37r.txt')

print('done...')

done…

1.2 方式二

將硬碟存放的該檔案的內容一行一行地讀入記憶體,修改完畢就寫入新檔案,最後用新檔案覆蓋原始檔。

import os

with open('37r.txt') as fr,\

open('37r_swap.txt', 'w') as fw:

# 迴圈讀取檔案內容,逐行修改

for line in fr:

line = line.replace('jason', 'jasonsb')

# 新檔案寫入原檔案修改後內容

fw.write(line)

os.remove('37r.txt')

os.rename('37r_swap.txt', '37r.txt')

print('done...')

done…

總而言之,修改檔案內容的思路為:以讀的方式開啟原檔案,以寫的方式開啟乙個新的檔案,把原檔案的內容進行修改,然後寫入新檔案,之後利用os模組的方法,把原檔案刪除,重新命名新檔案為原檔名,達到以假亂真的目的。

二、定義函式的三種方式

2.1 無參函式

定義函式時引數是函式體接收外部傳值的一種媒介,其實就是乙個變數名

在函式階段括號內沒有引數,稱為無參函式。需要注意的是:定義時無參,意味著呼叫時也無需傳入引數。

如果函式體**邏輯不需要依賴外部傳入的值,必須得定義成無參函式。

def func():

print('hello nick')

func() # hello nick

2.2 有參函式

在函式定義階段括號內有引數,稱為有參函式。需要注意的是:定義時有參,意味著呼叫時也必須傳入引數。

如果函式體**邏輯需要依賴外部傳入的值,必須得定義成有參函式。

def sum_self(x, y):

"""求和"""

res = x+y

print(res)

sum_self(1,2) # 3

2.3 空函式

當你只知道你需要實現某個功能,但不知道該如何用**實現時,你可以暫時寫個空函式,然後先實現其他的功能。

def func():

pass

Python常見檔案操作的函式

coding utf8 python常見檔案操作示例 os.path 模組中的路徑名訪問函式 分隔 basename 去掉目錄路徑,返回檔名 dirname 去掉檔名,返回目錄路徑 join 將分離的各部分組合成乙個路徑名 split 返回 dirname basename 元組 splitdriv...

python 檔案函式 Python 檔案操作函式

python 檔案處理主要用到 os 模組和 shutil 模組,sh 大概是 bash 的意思 os.chdir path 改變當前路徑到 path os.listdir path 輸出 path 路徑下所有的檔名 os.makedirs path dirname 在 path 路徑下建立 dir...

python中的enumerate 函式使用方法

結合例項來理解比較好,網上找了一下這個enumerate用法,自己也記錄一下加深印象 舉例說明 具體例子 列印輸出索引與value值 列表1 print 列表1 product mac pro iphone iwatch for index,item in enumerate product pri...