最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python基礎(chǔ)學(xué)習(xí)之文件夾常用操作的完整代碼

 更新時間:2026年06月04日 08:54:53   作者:夢想三三  
這篇文章主要為大家詳細介紹了Python中os和sys模塊的常用功能,涵蓋文件/目錄操作,系統(tǒng)信息和命令行交互三大部分,文中的示例代碼講解詳細,有需要的小伙伴可以了解下

一、獲取當(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文件夾下。

逐行拆解

  1. print(os.getcwd()):打印切換前的路徑。
  2. os.chdir('.\數(shù)據(jù)2')chdir = change directory,切換到當(dāng)前目錄下的數(shù)據(jù)2文件夾(.表示當(dāng)前目錄)。
  3. 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=False
  • b的路徑以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)

逐行拆解

  1. file_total_size = 0:初始化總大小為 0。
  2. for file_name in os.listdir('.'):遍歷當(dāng)前目錄下的所有文件 / 文件夾名。
  3. file_dir = os.path.join(os.getcwd(), file_name):拼接出文件的完整路徑(避免直接用file_name導(dǎo)致路徑錯誤)。
  4. file_total_size += os.path.getsize(file_dir):累加每個文件的大小到file_total_size中。
  5. 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ù)

  1. os.path.exists(path):判斷路徑是否存在(不管是文件還是文件夾),存在返回True,不存在返回False。
  2. os.path.isfile(path):判斷路徑是否存在且是一個文件,是則返回True
  3. 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')

逐行說明

  1. os.system('calc'):執(zhí)行 CMD 命令calc,打開 Windows 自帶的計算器程序。
  2. 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)致路徑解析錯誤。

解決方法:

  1. 把帶空格的路徑用雙引號包裹,比如"D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
  2. 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é)果。

逐行說明

  1. os.popen(..., 'r'):以只讀模式打開命令的輸出流。
  2. 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已切換回初始工作目錄")

代碼流程說明

  1. 第一步:先判斷test_folder是否存在,避免重復(fù)創(chuàng)建報錯。
  2. 第二步:用os.getcwd()獲取并打印當(dāng)前路徑。
  3. 第三步:用os.chdir()切換到test_folder目錄。
  4. 第四步:用with open(..., 'w')創(chuàng)建空文件(with會自動關(guān)閉文件,更安全)。
  5. 第五步:用os.listdir('.')列出當(dāng)前目錄(test_folder)下的所有內(nèi)容。
  6. 第六步:先判斷文件是否存在,再用os.remove()刪除文件。
  7. 第七步:先切換回初始目錄,再用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)的單個文件解壓到指定路徑。

逐行說明

  1. z.namelist()遍歷壓縮包內(nèi)的所有文件名。
  2. 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 -csys.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)文章

  • 老生常談Python進階之裝飾器

    老生常談Python進階之裝飾器

    下面小編就為大家?guī)硪黄仙U凱ython進階之裝飾器。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • python如何使用unittest測試接口

    python如何使用unittest測試接口

    這篇文章主要為大家詳細介紹了python如何使用unittest測試接口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • VS?code終端中python選擇解釋器(interpreter)報錯解決方式

    VS?code終端中python選擇解釋器(interpreter)報錯解決方式

    VS Code是當(dāng)前最受歡迎的代碼編輯器之一,對Python開發(fā)的支持也非常友好,這篇文章主要介紹了VS?code終端中python選擇解釋器(interpreter)報錯解決方式,需要的朋友可以參考下
    2025-08-08
  • pip install 使用國內(nèi)鏡像的方法示例

    pip install 使用國內(nèi)鏡像的方法示例

    這篇文章主要介紹了pip install 使用國內(nèi)鏡像的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python3.8安裝tensorflow的簡單方法步驟

    Python3.8安裝tensorflow的簡單方法步驟

    最近想要研究一下深度學(xué)習(xí)的應(yīng)用,于是翻了翻了社區(qū)的tensorflow安裝教程,所以下面這篇文章主要給大家介紹了關(guān)于Python3.8安裝tensorflow的簡單方法步驟,需要的朋友可以參考下
    2022-06-06
  • pycharm進行Git關(guān)聯(lián)和取消方式

    pycharm進行Git關(guān)聯(lián)和取消方式

    這篇文章主要介紹了pycharm進行Git關(guān)聯(lián)和取消方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python 上下文管理器及自定義原理解析

    python 上下文管理器及自定義原理解析

    這篇文章主要介紹了python 上下文管理器原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 如何使用Python實現(xiàn)一個簡單的window任務(wù)管理器

    如何使用Python實現(xiàn)一個簡單的window任務(wù)管理器

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)一個簡單的window任務(wù)管理器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • Python?venv創(chuàng)建失敗問題

    Python?venv創(chuàng)建失敗問題

    本文主要介紹了Python?venv創(chuàng)建失敗問題,解決方法是安裝缺失的venv庫,通過`sudo?apt-get?install?python3.11-venv`命令安裝后,即可成功創(chuàng)建虛擬環(huán)境,感興趣的可以了解一下
    2024-11-11
  • Python接口測試結(jié)果集實現(xiàn)封裝比較

    Python接口測試結(jié)果集實現(xiàn)封裝比較

    這篇文章主要介紹了Python接口測試結(jié)果集比較封裝,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05

最新評論

邓州市| 阿尔山市| 济阳县| 綦江县| 余干县| 高清| 宣城市| 宜君县| 凤山市| 旌德县| 安仁县| 黄石市| 海丰县| 牟定县| 台南县| 皮山县| 四川省| 潢川县| 交城县| 荃湾区| 靖远县| 商城县| 如东县| 高雄县| 阳东县| 铁力市| 若羌县| 福建省| 旬邑县| 潜山县| 贵德县| 绍兴市| 龙川县| 安康市| 辉县市| 晴隆县| 大兴区| 泰兴市| 南溪县| 铁岭县| 深圳市|