Python基礎(chǔ)學(xué)習(xí)之文件夾常用操作的完整代碼
一、獲取當(dāng)前工作目錄
import os print(os.getcwd()) # 獲取當(dāng)前代碼所在的絕對路徑
獲取當(dāng)前 Python 腳本運行的工作目錄(也就是代碼文件所在的文件夾路徑)。
os.getcwd() = get current working directory,返回的是字符串格式的絕對路徑。
二、創(chuàng)建單個文件夾
import os os.mkdir(r'數(shù)據(jù)1') # 在路徑中創(chuàng)建一個新的文件夾
在當(dāng)前工作目錄下,創(chuàng)建一個名為數(shù)據(jù)1的文件夾。
os.mkdir() 只能創(chuàng)建單級文件夾(如果上級目錄不存在,會報錯)。
前面的r表示 “原始字符串”,可以避免路徑中\被當(dāng)成轉(zhuǎn)義字符處理。
三、遞歸創(chuàng)建多級文件夾
import os os.makedirs(r'數(shù)據(jù)104\內(nèi)容b\內(nèi)容a\內(nèi)容c') # 遞歸來創(chuàng)建文件夾
一次性創(chuàng)建多級嵌套的文件夾(數(shù)據(jù)104 → 內(nèi)容b → 內(nèi)容a → 內(nèi)容c)。
和mkdir的區(qū)別:os.makedirs() 會自動創(chuàng)建所有不存在的上級目錄,不會報錯。
四、批量創(chuàng)建多個文件夾
import os
for i in range(1,201):
file_name = '文件夾'+str(i)
file_path = os.getcwd()+'\\數(shù)據(jù)1\\' + file_name
os.mkdir(file_path)在數(shù)據(jù)1文件夾下,批量創(chuàng)建文件夾1到文件夾200共 200 個文件夾。
逐行拆解:
range(1,201):循環(huán) 1 到 200(共 200 次)。file_name = '文件夾'+str(i):拼接出文件夾名,比如文件夾1、文件夾2。file_path = os.getcwd()+'\\數(shù)據(jù)1\\' + file_name:拼接出完整路徑,比如當(dāng)前路徑\數(shù)據(jù)1\文件夾1。os.mkdir(file_path):創(chuàng)建該文件夾。
注意:如果數(shù)據(jù)1文件夾不存在,這段代碼會報錯,需要先手動創(chuàng)建,或者改用os.makedirs()。
五、安全拼接路徑
'''將參數(shù)拼接為目錄路徑''' import os dir_new= os.path.join(os.getcwd(), '數(shù)據(jù)2', '內(nèi)容c') print(dir_new)
安全拼接多個路徑片段,生成一個完整的路徑字符串。
自動適配不同操作系統(tǒng)的路徑分隔符(Windows 用\,macOS/Linux 用/),代碼跨平臺不會出錯。
避免手動寫\\可能出現(xiàn)的錯誤。
示例輸出:比如當(dāng)前路徑是D:\test,則輸出D:\test\數(shù)據(jù)2\內(nèi)容c。
六、切換工作目錄
# 跳轉(zhuǎn)路徑
import os
print(os.getcwd()) # 切換前的路徑
os.chdir('.\數(shù)據(jù)2') # 改變當(dāng)前地址的路徑
print(os.getcwd()) # 切換后的路徑把 Python 腳本的當(dāng)前工作目錄,切換到數(shù)據(jù)2文件夾下。
逐行拆解:
print(os.getcwd()):打印切換前的路徑。os.chdir('.\數(shù)據(jù)2'):chdir=change directory,切換到當(dāng)前目錄下的數(shù)據(jù)2文件夾(.表示當(dāng)前目錄)。print(os.getcwd()):打印切換后的路徑,驗證是否切換成功。
后續(xù)的文件操作(比如讀取 / 寫入文件),都會以新的工作目錄為基準(zhǔn)路徑。
七、判斷路徑是相對路徑還是絕對路徑
import os
a=os.path.isabs('數(shù)據(jù)2\\文件夾201') # 判斷當(dāng)前路徑是相對路徑還是絕對路徑
b=os.path.isabs('D:\\soft\\pycharm\\code\\pythonProject\\書代碼')
print(a,b)判斷傳入的路徑是否是絕對路徑,返回True/False。
核心函數(shù):os.path.isabs(path)
a的路徑'數(shù)據(jù)2\\文件夾201'沒有盤符,是相對路徑 →a=Falseb的路徑以D:\開頭,是完整的絕對路徑 →b=True
絕對路徑是從盤符(Windows)或根目錄(Linux/macOS)開始的完整路徑;相對路徑是相對于當(dāng)前工作目錄的路徑。
八、從路徑中分離文件名和文件夾路徑
import os path = r'D:\soft\pycharm\code\pythonProject\書代碼\第9章\數(shù)據(jù)2\文件夾201\a.txt' file_name = os.path.basename(path) # 獲取路徑中的文件名 dir_name = os.path.dirname(path) # 獲取路徑中的文件夾路徑 file_dir_name = os.path.split(path)# 獲取的文件路徑和文件名以元組的形式返回 print(file_name, '\n', dir_name, '\n', file_dir_name)
os.path.basename(path):提取路徑的最后一部分,也就是文件名(這里會返回a.txt)。
os.path.dirname(path):提取路徑中除了文件名之外的部分,也就是文件夾路徑(這里會返回D:\soft\pycharm\code\pythonProject\書代碼\第9章\數(shù)據(jù)2\文件夾201)。
os.path.split(path):同時返回文件夾路徑和文件名,結(jié)果是一個元組:(文件夾路徑, 文件名)
運行結(jié)果示例:
a.txt
D:\soft\pycharm\code\pythonProject\書代碼\第9章\數(shù)據(jù)2\文件夾201
('D:\\soft\\pycharm\\code\\pythonProject\\書代碼\\第9章\\數(shù)據(jù)2\\文件夾201', 'a.txt')
九、查詢文件大小
import os path = r'D:\soft\pycharm\code\pythonProject\書代碼\第9章\數(shù)據(jù)3\書代碼.zip' print(os.path.getsize(path)) # 獲取路徑中的文件所占用內(nèi)存的大小
獲取指定文件的大小,單位是字節(jié)(B)。
如果要換算成 KB/MB,可以用:print(os.path.getsize(path)/1024)(KB)、print(os.path.getsize(path)/1024/1024)(MB)。
注意:這個函數(shù)不能直接獲取文件夾的總大小,需要遍歷文件夾內(nèi)的所有文件累加計算(后面的代碼會講到)。
十、刪除文件和文件夾
刪除單個文件
import os os.remove(r'D:\soft\pycharm\code\pythonProject\書代碼\第9章\數(shù)據(jù)4\文件夾201\b.txt')
刪除指定路徑的文件。
只能刪文件,不能刪文件夾。
如果文件不存在會報錯;刪除前最好用os.path.exists()判斷一下。
刪除空文件夾
import os os.rmdir(r'D:\soft\pycharm\code\pythonProject\書代碼\第9章\數(shù)據(jù)4\文件夾1')
刪除指定路徑的空文件夾。
只能刪空文件夾,如果文件夾里有文件 / 子文件夾會報錯。
想刪除非空文件夾,需要用shutil.rmtree()(需要導(dǎo)入shutil模塊)。
十一、文件 / 文件夾重命名
import os
# 批量重命名示例
for i in range(0,1):
old = 'D:\\soft\\pycharm\\code\\pythonProject\\書代碼\\第9章\\數(shù)據(jù)1\\數(shù)據(jù)2'
new = 'D:\\soft\\pycharm\\code\\pythonProject\\書代碼\\第9章\\數(shù)據(jù)1\\數(shù)據(jù)'+str(i+200)
os.rename(old, new) # 對文件或文件夾進行重命名
# 遞歸重命名(可重命名多級路徑)
os.renames('D:\\soft\\pycharm\\code\\pythonProject\\書代碼\\第9章\\數(shù)據(jù)1\\數(shù)據(jù)200', 'D:\\soft\\pycharm\\code\\pythonProject\\書代碼\\第9章\\數(shù)據(jù)1\\數(shù)據(jù)3\\書局')os.rename(old, new):給文件 / 文件夾重命名,如果new路徑不存在,直接改名;如果new路徑存在,會報錯(Windows 下)。
os.renames(old, new):支持重命名時同時修改上級目錄(遞歸修改路徑),如果上級目錄不存在會自動創(chuàng)建。
注意:重命名前最好用os.path.exists()判斷old路徑是否存在,避免報錯。
十二、創(chuàng)建硬鏈接
import os
os.link('D:\\soft\\pycharm\\code\\pythonProject\\書代碼\\第9章\\第9章.rar', r'D:\\soft\\pycharm\\code\\pythonProject\\書代碼\\第9章\\數(shù)據(jù)2\\1.rar')為源文件創(chuàng)建一個硬鏈接,相當(dāng)于給文件創(chuàng)建一個 “別名”,兩個路徑指向磁盤上的同一個文件內(nèi)容,修改其中一個,另一個也會跟著變。
- 硬鏈接只能在同一個磁盤分區(qū)內(nèi)創(chuàng)建,不能跨分區(qū)。
- 更常用的文件復(fù)制方法是
shutil.copy()/shutil.copy2()(需要導(dǎo)入shutil模塊),比硬鏈接更直觀
十三、獲取目錄下的所有文件名
import os
print('相對路徑中有: ',os.listdir('.')) # 獲取路徑中的全部文件名核心函數(shù):os.listdir(path)
返回指定路徑下的所有文件和文件夾名稱的列表。
示例:os.listdir('.')中的.代表當(dāng)前工作目錄,所以會返回當(dāng)前文件夾里的所有內(nèi)容。
十四、計算當(dāng)前目錄下所有文件的總大小
import os
file_total_size = 0
for file_name in os.listdir('.'):
file_dir = os.path.join(os.getcwd(), file_name)
file_total_size += os.path.getsize(file_dir)
print(file_total_size)逐行拆解:
file_total_size = 0:初始化總大小為 0。for file_name in os.listdir('.'):遍歷當(dāng)前目錄下的所有文件 / 文件夾名。file_dir = os.path.join(os.getcwd(), file_name):拼接出文件的完整路徑(避免直接用file_name導(dǎo)致路徑錯誤)。file_total_size += os.path.getsize(file_dir):累加每個文件的大小到file_total_size中。print(file_total_size):輸出當(dāng)前目錄下所有文件的總字節(jié)數(shù)。
注意:這個代碼會把文件夾也當(dāng)成文件計算(但os.path.getsize()對文件夾的返回值通常是目錄本身的大小,不是內(nèi)部文件的總和),所以更嚴(yán)謹(jǐn)?shù)膶懛ㄊ窍扰袛嗍欠駷槲募?/p>
十五、路徑存在性 / 類型判斷
import os path = r'D:\soft\pycharm\code\pythonProject\書代碼\第9章\數(shù)據(jù)2\文件夾201\a.txt' print(os.path.exists(path)) # 判斷path所指的文件或文件夾是否存在 print(os.path.isfile(path)) # 判斷path是否為一個文件 print(os.path.isdir(path)) # 判斷path是否為一個文件夾
核心函數(shù):
os.path.exists(path):判斷路徑是否存在(不管是文件還是文件夾),存在返回True,不存在返回False。os.path.isfile(path):判斷路徑是否存在且是一個文件,是則返回True。os.path.isdir(path):判斷路徑是否存在且是一個文件夾,是則返回True。
這些判斷函數(shù)通常和增刪改操作搭配使用,避免路徑不存在導(dǎo)致程序報錯。
十六、os.system()基礎(chǔ)用法
import os
os.system('calc') # 實現(xiàn)cmd的命令或終端的命令
os.system('D:\\soft\\Weixin\\Weixin.exe')逐行說明:
os.system('calc'):執(zhí)行 CMD 命令calc,打開 Windows 自帶的計算器程序。os.system('D:\\soft\\Weixin\\Weixin.exe'):直接運行微信的可執(zhí)行文件,相當(dāng)于雙擊打開微信。
核心函數(shù):os.system(command)
執(zhí)行操作系統(tǒng)的命令(Windows 的 CMD 命令、macOS/Linux 的終端命令),或者直接打開可執(zhí)行程序。
執(zhí)行命令時,會直接把命令的輸出打印在控制臺。
它的返回值是命令的退出狀態(tài)碼(執(zhí)行成功返回0,失敗返回非 0 值),不是命令的執(zhí)行結(jié)果。
用 os.system() 運行 Python 腳本
import os a = os.system(r"D:\soft\pycharm\code\pythonProject\書代碼\第9章\第9章第3個程序.py") print(a)
通過os.system()調(diào)用 Python 解釋器,運行指定的.py腳本文件。
本質(zhì)上等價于在 CMD 里執(zhí)行命令:python D:\soft\pycharm\code\pythonProject\書代碼\第9章\第9章第3個程序.py
print(a)會輸出命令的退出狀態(tài)碼:腳本正常執(zhí)行完成,返回0;腳本報錯退出,返回非 0 值。
os.system()無法直接獲取腳本運行時的打印輸出,只能知道腳本執(zhí)行是否成功。
十七、os.system()處理帶空格的路徑
import os
# 錯誤寫法(帶空格的路徑會報錯):
# os.system('D:\Program Files (x86)\Tencent\WeChat\WeChat.exe')
# 正確寫法1:路徑加引號包裹
os.system('"D:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe"')
# 正確寫法2:用原始字符串+路徑
os.system(r'D:\soft\pycharm\code\pythonProject\書代碼\第10章\2002年1月公司營收.xlsx')當(dāng)路徑中包含空格(比如Program Files (x86)),os.system()會把空格當(dāng)成命令參數(shù)分隔符,導(dǎo)致路徑解析錯誤。
解決方法:
- 把帶空格的路徑用雙引號包裹,比如
"D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"。 - 用
r原始字符串表示路徑,同時確保路徑?jīng)]有轉(zhuǎn)義字符問題。
補充:os.system()打開.xlsx文件時,會自動調(diào)用系統(tǒng)默認的 Excel 程序打開這個文件,相當(dāng)于雙擊文件。
十八、os.popen()獲取命令執(zhí)行結(jié)果
import os
a = os.popen(r"python D:\soft\pycharm\code\pythonProject\書代碼\第9章\第9章第3個程序.py", 'r')
print('jieshu: ', a.read()) # 獲取執(zhí)行命令后的結(jié)果核心函數(shù):os.popen(command, mode)
執(zhí)行系統(tǒng)命令,并返回一個文件對象,可以通過read()/readlines()讀取命令的輸出結(jié)果。
逐行說明:
os.popen(..., 'r'):以只讀模式打開命令的輸出流。a.read():讀取命令執(zhí)行時打印的所有輸出內(nèi)容(比如腳本里的print()結(jié)果)。
os.system()與os.popen()對比:
os.system():結(jié)果直接打印到終端,不保存到變量里,變量里只存了執(zhí)行是否成功的狀態(tài)碼。
os.popen():結(jié)果被捕獲保存到了變量里,需要你主動調(diào)用.read()才會顯示出來。
作業(yè)
編寫一個 Python 程序,使用 os 庫完成以下操作:
第一步:在當(dāng)前目錄下創(chuàng)建一個名為 test_folder 的文件夾;
第二步:打印出當(dāng)前程序的工作目錄路徑;
第三步:切換工作目錄到剛創(chuàng)建的 test_folder 文件夾;
第四步:在 test_folder 文件夾內(nèi)創(chuàng)建一個名為 test_file.txt 的空文件(提示:可結(jié)合 open 函數(shù));
第五步:打印出 test_folder 文件夾內(nèi)的所有文件 / 文件夾名稱;
第六步:刪除剛創(chuàng)建的 test_file.txt 文件;
第七步:切換回最初的工作目錄,刪除 test_folder 文件夾。
要求:代碼中要包含必要的異常處理(比如文件夾已存在、文件不存在時的報錯處理)
import os
# 記錄初始工作目錄,用于后續(xù)切換回去
original_dir = os.getcwd()
try:
# 第一步:在當(dāng)前目錄下創(chuàng)建一個名為 test_folder 的文件夾
if not os.path.exists('test_folder'):
os.mkdir('test_folder')
print("第一步:test_folder 文件夾創(chuàng)建成功")
else:
print("第一步:test_folder 文件夾已存在,跳過創(chuàng)建")
# 第二步:打印出當(dāng)前程序的工作目錄路徑
print("\n第二步:當(dāng)前工作目錄路徑:", os.getcwd())
# 第三步:切換工作目錄到剛創(chuàng)建的 test_folder 文件夾
os.chdir('test_folder')
print("\n第三步:已切換到 test_folder 目錄,當(dāng)前路徑:", os.getcwd())
# 第四步:在 test_folder 文件夾內(nèi)創(chuàng)建一個名為 test_file.txt 的空文件
# 使用 open 函數(shù)創(chuàng)建空文件,模式 'w' 表示寫入模式(不存在則創(chuàng)建,存在則清空)
with open('test_file.txt', 'w', encoding='utf-8') as f:
pass
print("\n第四步:test_file.txt 文件創(chuàng)建成功")
# 第五步:打印出 test_folder 文件夾內(nèi)的所有文件 / 文件夾名稱
contents = os.listdir('.') # '.' 表示當(dāng)前目錄(即 test_folder)
print("\n第五步:test_folder 內(nèi)的內(nèi)容:", contents)
# 第六步:刪除剛創(chuàng)建的 test_file.txt 文件
if os.path.exists('test_file.txt'):
os.remove('test_file.txt')
print("\n第六步:test_file.txt 文件刪除成功")
else:
print("\n第六步:test_file.txt 文件不存在,無法刪除")
# 第七步:切換回最初的工作目錄,刪除 test_folder 文件夾
os.chdir(original_dir)
print("\n第七步:已切換回初始工作目錄,當(dāng)前路徑:", os.getcwd())
if os.path.exists('test_folder'):
os.rmdir('test_folder') # rmdir 只能刪除空文件夾,這里已經(jīng)刪了文件,所以可以用
print("第七步:test_folder 文件夾刪除成功")
else:
print("第七步:test_folder 文件夾不存在,無法刪除")
except Exception as e:
print(f"\n程序執(zhí)行出錯:{e}")
finally:
# 無論是否出錯,都確保切換回初始目錄
if os.getcwd() != original_dir:
os.chdir(original_dir)
print("\n已切換回初始工作目錄")代碼流程說明
- 第一步:先判斷
test_folder是否存在,避免重復(fù)創(chuàng)建報錯。 - 第二步:用
os.getcwd()獲取并打印當(dāng)前路徑。 - 第三步:用
os.chdir()切換到test_folder目錄。 - 第四步:用
with open(..., 'w')創(chuàng)建空文件(with會自動關(guān)閉文件,更安全)。 - 第五步:用
os.listdir('.')列出當(dāng)前目錄(test_folder)下的所有內(nèi)容。 - 第六步:先判斷文件是否存在,再用
os.remove()刪除文件。 - 第七步:先切換回初始目錄,再用
os.rmdir()刪除空的test_folder文件夾。
異常處理說明
- 用
try-except捕獲所有可能的異常(比如權(quán)限不足、路徑錯誤等),并打印錯誤信息。 - 用
finally確保無論程序是否出錯,最后都會切換回初始工作目錄,避免后續(xù)操作路徑混亂。 - 每一步操作前都加了
os.path.exists()判斷,避免因文件 / 文件夾不存在或已存在導(dǎo)致報錯。
知識擴展
判斷文件是否為 Zip 壓縮文件
import zipfile
print(zipfile.is_zipfile('數(shù)據(jù)3\\書代碼.zip'))核心函數(shù):zipfile.is_zipfile(path)
判斷指定路徑的文件是否是合法的 ZIP 壓縮文件,返回True/False。
用途:在操作壓縮包前做校驗,避免處理損壞或非壓縮文件時報錯。
讀取壓縮包內(nèi)的文件名
import zipfile
z = zipfile.ZipFile('數(shù)據(jù)3\\書代碼.zip', 'r') # 打開一個壓縮文件
print(z.namelist()) # 讀取壓縮文件中所包含的文件名稱核心對象:zipfile.ZipFile(),用于操作壓縮包的主對象。
參數(shù)說明:
第一個參數(shù):壓縮包的路徑。
第二個參數(shù)'r':以只讀模式打開壓縮包。
z.namelist():返回壓縮包內(nèi)所有文件 / 文件夾的路徑列表,比如['num1.py', 'num2.py', 'data.txt']
解壓壓縮包中的所有文件
import zipfile
z = zipfile.ZipFile('數(shù)據(jù)3\\書代碼.zip')
for f in z.namelist():
z.extract(f, r'數(shù)據(jù)3') # 解壓文件核心函數(shù):z.extract(file_name, path)
將壓縮包內(nèi)的單個文件解壓到指定路徑。
逐行說明:
z.namelist()遍歷壓縮包內(nèi)的所有文件名。z.extract(f, r'數(shù)據(jù)3'):把文件f解壓到當(dāng)前目錄下的數(shù)據(jù)3文件夾中。
創(chuàng)建新的壓縮包并添加文件
import zipfile
z = zipfile.ZipFile('數(shù)據(jù)3\\書代碼新.zip', 'w')
z.write(r'數(shù)據(jù)3\num1.py')
z.write(r'數(shù)據(jù)3\num2.py')
z.close()'w'表示以寫入模式創(chuàng)建 / 打開壓縮包,如果壓縮包不存在則新建,存在則會清空原有內(nèi)容。
z.write(file_path):將指定路徑的文件添加到壓縮包中。
批量壓縮文件夾內(nèi)的所有文件
import os, zipfile
z = zipfile.ZipFile('數(shù)據(jù)3\\壓縮全.zip', 'w')
for file_name in os.listdir('.\\數(shù)據(jù)3'):
if file_name != '壓縮全.zip': # 避免把自己也壓縮進去
z.write('./數(shù)據(jù)3/'+file_name)
z.close()遍歷數(shù)據(jù)3文件夾下的所有文件,批量添加到壓縮全.zip中。
os.listdir('.\\數(shù)據(jù)3'):獲取文件夾內(nèi)所有文件名。
if file_name != '壓縮全.zip':排除正在創(chuàng)建的壓縮包本身,避免循環(huán)壓縮。
讀取壓縮包內(nèi)文件的詳細屬性
import zipfile
z = zipfile.ZipFile('數(shù)據(jù)3\\書代碼.zip', 'r')
print(z.infolist())
for f in z.infolist(): # 取壓縮文件Zip中的文件屬性
print('文件名:', f.filename, end='\t')
print('修改時間:', f.date_time, end='\t')
print('CRC值:', f.CRC, end='\n\t')
print('壓縮后大?。?, f.compress_size, end='\t')
print('壓縮前大小:', f.file_size)核心函數(shù):z.infolist(),返回壓縮包內(nèi)所有文件的ZipInfo對象列表,每個對象包含文件的詳細信息。
可以批量查看壓縮包內(nèi)文件的大小、修改時間,或者計算壓縮率。
常用屬性說明:
| 屬性 | 含義 |
|---|---|
f.filename | 文件在壓縮包內(nèi)的路徑 / 名稱 |
f.date_time | 文件的修改時間(元組格式:年,月,日,時,分,秒) |
f.CRC | 文件的 CRC 校驗值,用于驗證文件完整性 |
f.compress_size | 文件壓縮后的大?。ㄗ止?jié)) |
f.file_size | 文件壓縮前的原始大小(字節(jié)) |
獲取 Python 版本信息
import sys print(sys.version) # 獲取當(dāng)前Python的解釋器版本號 print(sys.version_info) # 獲取解釋器的版本信息
sys.version:返回 Python 解釋器的版本字符串,比如 3.11.4 (main, ...)。
sys.version_info:返回一個版本元組對象,包含主版本、次版本、微版本等信息,比如 sys.version_info(major=3, minor=11, micro=4, ...)。
可以用來判斷用戶的 Python 版本,確保代碼能在支持的版本上運行。
Python 版本校驗
import sys
if (sys.version_info[0]*10 + sys.version_info[1])/10 < 3.8:
print('您的Python版本過低,請安裝Python 3.8及以上版本')
sys.exit()
else:
print("您的Python版本正確,代碼將繼續(xù)運行")
print('hello world')sys.version_info[0] 是主版本號(比如 3),sys.version_info[1] 是次版本號(比如 11)。
用 (主版本*10 + 次版本)/10 把版本號轉(zhuǎn)為浮點數(shù),比如3.11,和3.8比較。
sys.exit():直接終止程序運行,后面的代碼不會再執(zhí)行。
效果:如果用戶的 Python 版本低于 3.8,程序會直接退出并提示升級;版本符合要求則繼續(xù)運行。
獲取系統(tǒng)與環(huán)境信息
import sys print(sys.maxsize) # 獲取Python支持的對象中包含的最大數(shù)據(jù)長度 print(sys.platform) # 獲取當(dāng)前計算機的操作系統(tǒng) print(sys.copyright) # 獲取當(dāng)前Python的版權(quán)信息 print(sys.executable) # 獲取當(dāng)前Python解釋器在計算機中的目錄地址 print(sys.exec_prefix) # Python安裝根目錄
sys.maxsize:返回系統(tǒng)中int類型的最大值(和系統(tǒng)位數(shù)有關(guān),64 位系統(tǒng)是9223372036854775807)。
sys.platform:返回操作系統(tǒng)標(biāo)識,Windows 是win32,Linux 是linux,macOS 是darwin。
sys.executable:返回當(dāng)前運行的 Python 解釋器的完整路徑,比如C:\Users\xxx\python.exe。
sys.exec_prefix:返回 Python 的安裝根目錄,用于定位庫文件位置。
命令行參數(shù)sys.argv基礎(chǔ)用法
import sys print(sys.argv)
sys.argv:是一個列表,包含了運行 Python 腳本時傳入的所有命令行參數(shù)。
列表結(jié)構(gòu):
sys.argv[0]:腳本本身的路徑(固定是第一個元素)。
sys.argv[1:]:后面的元素是用戶傳入的參數(shù)。
示例:運行命令 python 第9章第5個程序.py -c,sys.argv 會是:
['D:\\soft\\pycharm\\code\\pythonProject\\書代碼\\第9章\\第9章第5個程序.py', '-c']
命令行參數(shù)交互程序
import sys
import os
a = sys.argv
print(a)
for i in range(1, len(sys.argv)):
if sys.argv[i] == '-h':
print('''本代碼的幫助
-h:用于查詢幫助
-a:用于獲取Python的所有關(guān)鍵字
-c:用于獲取Python安裝的所有第三方庫的列表''')
if i > 1 and sys.argv[i-1] == '-h':
num = sys.argv[i]
print(f"你給-h參數(shù)傳入的值是:{num}")
if sys.argv[i] == '-a':
print('開始查詢Python的所有關(guān)鍵字:')
help("keywords")
if sys.argv[i] == '-c':
print('開始查詢Python安裝的所有第三方庫:')
os.system('pip list')這是一個命令行交互工具,通過不同的參數(shù)實現(xiàn)不同功能:
-h:顯示幫助信息,還可以接收一個額外參數(shù)并打印。
-a:調(diào)用help("keywords"),列出 Python 的所有內(nèi)置關(guān)鍵字。
-c:調(diào)用os.system('pip list'),列出當(dāng)前環(huán)境安裝的所有第三方庫(和你截圖里的效果一致)。
運行效果:觸發(fā)-c分支,執(zhí)行pip list命令,打印出了所有已安裝的庫。

以上就是Python基礎(chǔ)學(xué)習(xí)之文件夾常用操作的完整代碼的詳細內(nèi)容,更多關(guān)于Python操作文件夾的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
VS?code終端中python選擇解釋器(interpreter)報錯解決方式
VS Code是當(dāng)前最受歡迎的代碼編輯器之一,對Python開發(fā)的支持也非常友好,這篇文章主要介紹了VS?code終端中python選擇解釋器(interpreter)報錯解決方式,需要的朋友可以參考下2025-08-08
pycharm進行Git關(guān)聯(lián)和取消方式
這篇文章主要介紹了pycharm進行Git關(guān)聯(lián)和取消方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
如何使用Python實現(xiàn)一個簡單的window任務(wù)管理器
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)一個簡單的window任務(wù)管理器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-03-03
Python接口測試結(jié)果集實現(xiàn)封裝比較
這篇文章主要介紹了Python接口測試結(jié)果集比較封裝,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05

