一、Open函數使用
open
函數是 Python 中用于打開文件的內置函數,它返回一個文件對象,該文件對象提供了對文件進行讀寫操作的方法。使用?open
?函數時,通常需要指定至少兩個參數:文件名(file
)和模式(mode
)。模式決定了文件是以只讀、只寫、追加、讀寫等哪種方式被打開的。
file_object = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file:必需,文件路徑(相對或絕對路徑)。
mode:可選,文件打開模式。默認為 'r',即只讀模式。其他常用模式包括 'w'(只寫,文件存在則覆蓋)、'a'(追加,寫入的數據會被追加到文件末尾)、'r+'(讀寫)等。
buffering:可選,設置緩沖策略。
encoding:可選,用于指定文件的編碼方式,如 'utf-8'。
errors:可選,指定編碼和解碼錯誤時的處理方式。
newline:可選,控制跨平臺行尾符的行為。
closefd:可選,如果文件描述符是用?os.open()?打開的,并且傳遞給了?open(),closefd?應該為?False,否則?open()?關閉文件時也會關閉文件描述符。
opener:可選,一個可調用對象,用于打開文件(通常是底層系統調用),通常不需要。
讀取文件
# 打開文件并讀取內容
with open('example.txt', 'r', encoding='utf-8') as file: content = file.read() print(content) # 使用with語句可以自動管理文件的打開和關閉
?寫入文件
# 打開文件并寫入內容
with open('output.txt', 'w', encoding='utf-8') as file: file.write('Hello, World!') # 如果文件已存在,'w' 模式會覆蓋原有內容
?追加內容到文件
# 打開文件并追加內容
with open('output.txt', 'a', encoding='utf-8') as file: file.write('\nAnother line.') # 'a' 模式會在文件末尾追加內容,不會覆蓋原有內容
讀寫文件
# 打開文件進行讀寫
with open('example.txt', 'r+', encoding='utf-8') as file: content = file.read() print(content) file.write('\nSome new content.') # 注意:'r+' 模式時,如果文件不存在會拋出 FileNotFoundError
二、Json與pickle
序列化,將python數據結構 轉換為字符串;反序列化,將字符串 轉換為python數據結構 方便解析。
json是一種輕量級數據格式,適用與所有編程語言。
json序列化
1.方式一:dumps,第一步,序列化成字符串,第二步,將字符串寫入文件。
datas = {"user": [{"id": 101, "un": "張三", "pwd": "123456"}],"student": [],"z": None
}
datas_str = json.dumps(datas)
with open("./示例.txt", 'w') as f:f.write(datas_str)
2.方式二:dump,一步完成,把序列化結果寫入文件‘。
with open("./示例.txt", 'w') as f:json.dump(datas, f)
?json反序列化
1.方式一:loads,第一步,讀取文件內容,返回字符串,第二步,將字符串反序列化為python數據結構。
with open("./data.txt", "r") as f:datas = json.load(f)first_user = datas["user"][0]print(first_user.get("un"), first_user.get("pwd"))
2.方式二:load,一步完成,把文件內容反序列化成python數據結構。
with open("./data2.txt", "rb") as f:data = pickle.load(f)
三、Os模塊
Os模塊全稱操作系統模塊。
相關指令:
os.curdir:當前路徑
import osprint(os.curdir)
#結果:.
os.pardir:上級路徑
import osprint(os.aprdir)
#結果:..
os.chdir:更改路徑
os.listdir:當前路徑下文件信息
import os
print(os.listdir("d:\\測試文件"))
#結果:['01.txt', '21.txt']
os.mkdir:創建文件夾
import os
os.mkdir("d:\\測試文件\\創建文件夾測試")
?
os.rmdir:刪除文件夾
import os
os.rmdir("d:\\測試文件\\創建文件夾測試")
?
os.cpu.count:cpu核心參數
import os
print(os.cpu_count())
#結果:4
os.path模塊
os.path.exists:路徑或者文件是否存在(返回True或False)
import os
print(os.path.exists("d:\\測試文件"))
#結果:True
os.path.isfile:是否為文件(返回True或False)
import os
print(os.path.isfile("d:\\測試文件\\01.txt"))
#結果:True
os.path.isdir:是否為路徑(返回True或False)
import os
print(os.path.isdir("d:\\什么文件"))
#結果:False
os.path.split:分割最后一部分和前面路徑
import os
print(os.path.split("d:\\測試文件\\測試文件2\\01.txt"))
#結果:('d:\\測試文件\\測試文件2', '01.txt')
os.path.join:將多個部分組合成一個路徑
import os
path = os.path.join("d:", "one", "two", "tree.txt")
os.path.abspath:絕對路徑,abspath(os.curdir)
import os
print(os.path.abspath("d:\\測試文件\\創建文件夾測試"))
#結果:d:\測試文件\創建文件夾測試
os.path.dirname:當前路徑的父路徑
import os
print(os.path.dirname("d:\\測試文件\\創建文件夾測試"))
#結果:d:\測試文件
__file__:獲取當前文件
import os
print(os.path.dirname(__file__))
總結
Open.Json.pickle.Os是python開發過程中比較核心的內容。我們在學習過程中應當更加注意!
制作不易,多多點贊收藏支持哦!?