日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Python 操作系統(tǒng)交互的 15 個(gè)實(shí)用命令

來源: 責(zé)編: 時(shí)間:2024-05-28 09:07:50 237觀看
導(dǎo)讀對(duì)于Python初學(xué)者而言,掌握如何使用Python與操作系統(tǒng)進(jìn)行交互是一項(xiàng)非常實(shí)用的技能。這不僅能夠讓你的腳本更加靈活強(qiáng)大,還能在自動(dòng)化任務(wù)處理、文件管理等方面大顯身手。下面,我們將通過10個(gè)簡單到復(fù)雜的實(shí)例,逐步引導(dǎo)你

對(duì)于Python初學(xué)者而言,掌握如何使用Python與操作系統(tǒng)進(jìn)行交互是一項(xiàng)非常實(shí)用的技能。這不僅能夠讓你的腳本更加靈活強(qiáng)大,還能在自動(dòng)化任務(wù)處理、文件管理等方面大顯身手。下面,我們將通過10個(gè)簡單到復(fù)雜的實(shí)例,逐步引導(dǎo)你學(xué)習(xí)如何運(yùn)用Python的os和subprocess模塊來執(zhí)行操作系統(tǒng)命令。Fa928資訊網(wǎng)——每日最新資訊28at.com

Fa928資訊網(wǎng)——每日最新資訊28at.com

1. 列出當(dāng)前目錄下的所有文件

首先,讓我們從最基本的開始——列出當(dāng)前目錄下的所有文件和文件夾。Fa928資訊網(wǎng)——每日最新資訊28at.com

import osdef list_files():    files = os.listdir('.')    print("當(dāng)前目錄下的文件和文件夾:")    for file in files:        print(file)list_files()

這段代碼使用了os.listdir('.'),.代表當(dāng)前目錄,它返回一個(gè)列表,包含了該目錄下所有文件和文件夾的名字。Fa928資訊網(wǎng)——每日最新資訊28at.com

2. 檢查文件是否存在

在進(jìn)行文件操作之前,檢查文件是否存在是基礎(chǔ)而重要的一步。Fa928資訊網(wǎng)——每日最新資訊28at.com

def check_file(filename):    return os.path.exists(filename)print("文件是否存在:", check_file('example.txt'))

這里,os.path.exists()函數(shù)用于檢查指定路徑的文件或目錄是否存在。Fa928資訊網(wǎng)——每日最新資訊28at.com

3. 創(chuàng)建目錄

接下來,學(xué)習(xí)如何創(chuàng)建目錄。Fa928資訊網(wǎng)——每日最新資訊28at.com

def create_directory(directory):    os.makedirs(directory, exist_ok=True)create_directory('new_folder')

os.makedirs()可以創(chuàng)建多級(jí)目錄,exist_ok=True防止因目錄已存在而拋出異常。Fa928資訊網(wǎng)——每日最新資訊28at.com

4. 刪除文件

小心使用,刪除操作不可逆!Fa928資訊網(wǎng)——每日最新資訊28at.com

def delete_file(filename):    if os.path.exists(filename):        os.remove(filename)    else:        print("文件不存在")delete_file('no_exist.txt')  # 示例:嘗試刪除一個(gè)不存在的文件

5. 移動(dòng)或重命名文件

文件管理中的常見操作。Fa928資訊網(wǎng)——每日最新資訊28at.com

def move_file(src, dst):    os.rename(src, dst)move_file('old_name.txt', 'new_name.txt')

os.rename()既可用于重命名文件,也可用于在同一文件系統(tǒng)內(nèi)移動(dòng)文件。Fa928資訊網(wǎng)——每日最新資訊28at.com

6. 運(yùn)行外部命令(基本)

使用subprocess模塊執(zhí)行操作系統(tǒng)命令。Fa928資訊網(wǎng)——每日最新資訊28at.com

import subprocessdef run_command(command):    subprocess.run(command, shell=True)run_command('dir')  # 在Windows中列出目錄,Linux下使用'ls'

注意:shell=True允許直接傳遞字符串作為命令,但有安全風(fēng)險(xiǎn),特別是當(dāng)命令部分來自用戶輸入時(shí)。Fa928資訊網(wǎng)——每日最新資訊28at.com

7. 獲取環(huán)境變量

了解系統(tǒng)環(huán)境配置。Fa928資訊網(wǎng)——每日最新資訊28at.com

def get_env_variable(var_name):    return os.environ.get(var_name, "未找到")print(get_env_variable('PATH'))

os.environ是一個(gè)字典,包含了所有的環(huán)境變量。Fa928資訊網(wǎng)——每日最新資訊28at.com

8. 改變當(dāng)前工作目錄

有時(shí)候,我們需要在不同的目錄間切換。Fa928資訊網(wǎng)——每日最新資訊28at.com

def change_dir(new_dir):    os.chdir(new_dir)    print("當(dāng)前目錄已改為:", os.getcwd())change_dir('new_folder')

os.chdir()改變當(dāng)前工作目錄,os.getcwd()則用來獲取當(dāng)前工作目錄。Fa928資訊網(wǎng)——每日最新資訊28at.com

9. 執(zhí)行命令并捕獲輸出

有時(shí)候我們需要獲取命令的輸出。Fa928資訊網(wǎng)——每日最新資訊28at.com

def capture_output(command):    result = subprocess.check_output(command, shell=True, text=True)    return result.strip()print(capture_output('echo Hello, World!'))

這里,check_output()執(zhí)行命令并返回其輸出,text=True使輸出為文本格式而非字節(jié)串。Fa928資訊網(wǎng)——每日最新資訊28at.com

10. 高級(jí):批量重命名文件

最后,一個(gè)進(jìn)階示例,批量重命名文件。Fa928資訊網(wǎng)——每日最新資訊28at.com

import globdef batch_rename(pattern, new_name_base, extension):    for count, filename in enumerate(glob.glob(pattern)):        new_name = f"{new_name_base}_{count}.{extension}"        os.rename(filename, new_name)        print(f"重命名: {filename} -> {new_name}")batch_rename('*.txt', 'document', 'txt')

這個(gè)例子展示了如何使用glob.glob()匹配文件模式,并利用循環(huán)批量重命名文件。Fa928資訊網(wǎng)——每日最新資訊28at.com

進(jìn)階實(shí)踐與技巧

11. 并行執(zhí)行命令

在處理大量文件或長時(shí)間運(yùn)行的任務(wù)時(shí),利用并行處理可以顯著提高效率。Python的concurrent.futures模塊可以幫助我們實(shí)現(xiàn)這一點(diǎn)。Fa928資訊網(wǎng)——每日最新資訊28at.com

from concurrent.futures import ThreadPoolExecutorimport timedef slow_command(n):    time.sleep(1)  # 模擬耗時(shí)操作    return f"Command {n} completed."def parallel_commands(commands):    with ThreadPoolExecutor() as executor:        results = list(executor.map(slow_command, commands))    return resultscommands = [i for i in range(5)]print(parallel_commands(commands))

這段代碼創(chuàng)建了一個(gè)線程池來并行執(zhí)行命令,大大減少了總等待時(shí)間。Fa928資訊網(wǎng)——每日最新資訊28at.com

12. 使用shlex.split()安全地分割命令行參數(shù)

當(dāng)需要將字符串作為命令行指令執(zhí)行時(shí),使用shlex.split()可以更安全地處理包含空格和特殊字符的字符串。Fa928資訊網(wǎng)——每日最新資訊28at.com

import shlexcommand_str = 'echo "Hello, World!"'safe_args = shlex.split(command_str)subprocess.run(safe_args)

這樣處理后,即使字符串中有引號(hào)或空格,也能正確解析為命令行參數(shù)。Fa928資訊網(wǎng)——每日最新資訊28at.com

13. 實(shí)時(shí)監(jiān)控命令輸出

有時(shí)候我們需要實(shí)時(shí)查看命令的輸出,而不是等待命令完全執(zhí)行完畢。subprocess.Popen提供了這樣的能力。Fa928資訊網(wǎng)——每日最新資訊28at.com

import subprocessdef stream_output(command):    process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True, text=True)    while True:        output = process.stdout.readline()        if output == '' and process.poll() is not None:            break        if output:            print(output.strip())    rc = process.poll()    print(f"命令完成,退出碼: {rc}")stream_output('ping www.google.com')

這段代碼創(chuàng)建了一個(gè)持續(xù)讀取子進(jìn)程輸出的循環(huán),直到命令執(zhí)行完畢。Fa928資訊網(wǎng)——每日最新資訊28at.com

14. 錯(cuò)誤處理與日志記錄

在執(zhí)行操作系統(tǒng)命令時(shí),正確處理錯(cuò)誤是非常重要的。使用try-except結(jié)構(gòu),并考慮使用Python的logging模塊記錄日志。Fa928資訊網(wǎng)——每日最新資訊28at.com

import logginglogging.basicConfig(level=logging.INFO)def execute_with_logging(command):    try:        subprocess.run(command, check=True, shell=True)        logging.info(f"命令執(zhí)行成功: {command}")    except subprocess.CalledProcessError as e:        logging.error(f"命令執(zhí)行失敗: {command}, 錯(cuò)誤碼: {e.returncode}")execute_with_logging('nonexistent_command')  # 示例錯(cuò)誤命令

這樣可以確保在命令失敗時(shí),你能夠得到清晰的反饋。Fa928資訊網(wǎng)——每日最新資訊28at.com

15. 綜合應(yīng)用:自動(dòng)化備份腳本

結(jié)合以上知識(shí),編寫一個(gè)簡單的自動(dòng)化備份腳本,將指定目錄的內(nèi)容打包并移動(dòng)到備份目錄。Fa928資訊網(wǎng)——每日最新資訊28at.com

import shutilfrom datetime import datetimedef backup_folder(source, destination):    timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')    backup_name = f"backup_{timestamp}.zip"    shutil.make_archive(backup_name, 'zip', source)    shutil.move(backup_name, os.path.join(destination, backup_name))    print(f"備份完成: {backup_name} 移動(dòng)到了 {destination}")backup_folder('source_folder', 'backup_folder')

這個(gè)腳本使用了shutil.make_archive創(chuàng)建zip文件,然后移動(dòng)到備份目錄,展示了Python在文件管理和自動(dòng)化任務(wù)中的強(qiáng)大能力。Fa928資訊網(wǎng)——每日最新資訊28at.com

通過這些進(jìn)階實(shí)踐和技巧,你的Python腳本將變得更加強(qiáng)大和靈活。不斷實(shí)踐,結(jié)合具體需求進(jìn)行創(chuàng)新,你的編程技能將不斷進(jìn)步。Fa928資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-91162-0.htmlPython 操作系統(tǒng)交互的 15 個(gè)實(shí)用命令

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 徹底搞清楚Vue3的DefineExpose宏是如何暴露方法給父組件使用

下一篇: Spring如何管理Bean的生命周期呢?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺(tái)競技

    旗艦機(jī)基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據(jù)博主數(shù)碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對(duì)代碼進(jìn)行反混淆,尤其是使用自定義混淆器對(duì)其進(jìn)行混淆時(shí)。什么是混
  • 微信語音大揭秘:為什么禁止轉(zhuǎn)發(fā)?

    大家好,我是你們的小米。今天,我要和大家聊一個(gè)有趣的話題:為什么微信語音不可以轉(zhuǎn)發(fā)?這是一個(gè)我們經(jīng)常在日常使用中遇到的問題,也是一個(gè)讓很多人好奇的問題。讓我們一起來揭開這
  • JavaScript學(xué)習(xí) -AES加密算法

    引言在當(dāng)今數(shù)字化時(shí)代,前端應(yīng)用程序扮演著重要角色,用戶的敏感數(shù)據(jù)經(jīng)常在前端進(jìn)行加密和解密操作。然而,這樣的操作在網(wǎng)絡(luò)傳輸和存儲(chǔ)中可能會(huì)受到惡意攻擊的威脅。為了確保數(shù)據(jù)
  • 19個(gè) JavaScript 單行代碼技巧,讓你看起來像個(gè)專業(yè)人士

    今天這篇文章跟大家分享18個(gè)JS單行代碼,你只需花幾分鐘時(shí)間,即可幫助您了解一些您可能不知道的 JS 知識(shí),如果您已經(jīng)知道了,就當(dāng)作復(fù)習(xí)一下,古人云,溫故而知新嘛。現(xiàn)在,我們就開始今
  • 當(dāng)家的盒馬,加速謀生

    來源 | 價(jià)值星球Planet作者 | 歸去來自己“當(dāng)家”的盒馬,開始加速謀生了。據(jù)盒馬官微消息,盒馬計(jì)劃今年開放生鮮供應(yīng)鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經(jīng)與
  • iQOO 11S或7月上市:搭載“雞血版”驍龍8Gen2 史上最強(qiáng)5G Soc

    去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強(qiáng)機(jī),iQOO 11不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺(tái)及144Hz電競屏,同時(shí)在快充
  • 2299元起!iQOO Pad明晚首銷:性能最強(qiáng)天璣平板

    5月23日,iQOO如期舉行了新品發(fā)布會(huì),除了首發(fā)安卓最強(qiáng)旗艦處理器的iQOO Neo8系列新機(jī)外,還在發(fā)布會(huì)上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點(diǎn)
  • 首發(fā)天璣9200+ iQOO Neo8系列發(fā)布首銷售價(jià)2299元起

    2023年5月23日晚,iQOO Neo8系列正式發(fā)布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro強(qiáng)悍登場,限時(shí)售價(jià)3099元起;價(jià)位段最強(qiáng)性能手機(jī)iQOO Neo8同期上市
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
好男人免费精品视频| 欧美亚洲成人精品| 噜噜噜噜噜久久久久久91| 老司机久久99久久精品播放免费| 免费视频亚洲| 欧美日在线观看| 国产精品一区二区欧美| 黑人一区二区三区四区五区| 亚洲激情精品| 一区二区三区精品视频| 性欧美办公室18xxxxhd| 麻豆乱码国产一区二区三区| 欧美三级电影网| 国产一区二区日韩精品| 亚洲精品美女久久7777777| 亚洲欧美色一区| 欧美福利一区二区三区| 国产精品视频yy9099| 亚洲激情国产精品| 欧美一级午夜免费电影| 欧美交受高潮1| 国产一区二区三区在线观看网站| 最新国产乱人伦偷精品免费网站| 亚洲欧美国产日韩中文字幕| 美女黄毛**国产精品啪啪| 国产精品区一区| 亚洲精品乱码| 久久久久久久97| 国产精品初高中精品久久| 亚洲二区精品| 欧美在线视频一区二区三区| 欧美日韩不卡视频| 一区二区三区在线免费观看| 亚洲午夜成aⅴ人片| 欧美xx视频| 国产一区二区三区四区| 一本色道久久综合狠狠躁篇怎么玩| 久久精品国产一区二区三区| 欧美视频手机在线| 亚洲激情另类| 久久人人97超碰精品888| 国产精品另类一区| 亚洲另类一区二区| 久久人人爽人人| 国产欧美精品一区二区三区介绍| 99re6这里只有精品| 麻豆国产精品一区二区三区| 国产精品自拍在线| 亚洲视屏一区| 欧美日本高清一区| 在线观看不卡| 久久久久久穴| 国产日产欧美a一级在线| 亚洲图片欧美一区| 欧美日韩成人免费| 亚洲欧洲免费视频| 噜噜噜91成人网| 一区二区三区无毛| 久久se精品一区二区| 国产精品乱码人人做人人爱| 99国内精品久久| 欧美国产第一页| 亚洲大胆视频| 久久综合国产精品台湾中文娱乐网| 国产最新精品精品你懂的| 欧美一区日韩一区| 国产精品综合不卡av | 亚洲一区二区三| 欧美日本国产一区| 91久久精品国产91性色| 女女同性精品视频| 亚洲大片免费看| 欧美1区免费| 91久久国产自产拍夜夜嗨| 欧美国产一区二区在线观看 | 欧美激情在线播放| 亚洲片在线资源| 欧美成人r级一区二区三区| 在线观看成人av| 噜噜噜久久亚洲精品国产品小说| 国语自产精品视频在线看抢先版结局 | 久久久国产视频91| 国产综合色在线| 久久黄色网页| 红杏aⅴ成人免费视频| 久久久精品欧美丰满| 狠狠色丁香婷婷综合久久片| 久久久久久有精品国产| 激情久久五月天| 免费91麻豆精品国产自产在线观看| 亚洲电影免费在线观看| 欧美大片在线观看一区| 亚洲人久久久| 欧美日韩国语| 午夜精品久久久久久99热| 国产亚洲综合精品| 久久久噜噜噜久久人人看| 在线精品视频在线观看高清| 欧美成人免费在线视频| 亚洲精品视频免费观看| 欧美视频在线一区二区三区| 亚洲免费中文| 国产自产女人91一区在线观看| 久久天天躁狠狠躁夜夜av| 亚洲国产精品小视频| 欧美日韩成人免费| 午夜国产精品视频免费体验区| 国产视频精品xxxx| 久久午夜av| 亚洲免费成人av电影| 欧美午夜精品久久久久久人妖| 亚洲欧美视频一区| 韩日欧美一区二区| 欧美精品激情| 午夜免费在线观看精品视频| 一区在线播放视频| 欧美日韩国产va另类| 亚洲欧美清纯在线制服| 激情欧美一区二区三区在线观看| 欧美v亚洲v综合ⅴ国产v| 一区二区三区欧美| 国产午夜亚洲精品羞羞网站| 蜜臀av在线播放一区二区三区| 99在线精品视频| 国产欧美在线视频| 欧美成人精品在线播放| 亚洲一区二区三区高清不卡| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产精品欧美一二99| 欧美视频在线一区二区三区| 久久精品欧美| 妖精视频成人观看www| 国产区欧美区日韩区| 欧美成人免费观看| 亚洲欧美日韩在线观看a三区| 精品成人在线视频| 欧美日韩一区二区三区在线看| 欧美在线视频二区| 亚洲人成人一区二区在线观看| 国产精品日韩在线播放| 免费成人黄色片| 亚洲欧美视频一区| 亚洲肉体裸体xxxx137| 国产日韩在线看片| 欧美日韩成人一区| 久久精品女人| 亚洲午夜电影在线观看| 亚洲高清自拍| 国产欧美日韩三级| 欧美日韩一区二区三区在线观看免| 久久久99国产精品免费| 一区二区国产日产| 亚洲国产福利在线| 国产亚洲精品aa| 国产精品白丝黑袜喷水久久久| 欧美.www| 久久精品理论片| 亚洲欧美在线看| 夜夜精品视频一区二区| 亚洲大胆美女视频| 国产婷婷色一区二区三区| 欧美日韩三级视频| 免费久久久一本精品久久区| 欧美一区二视频| 亚洲影院免费观看| 99国产精品| 亚洲欧洲一区二区在线观看 | 一本久久精品一区二区| 亚洲福利视频二区| 国产一区二区三区奇米久涩| 欧美特黄一区| 欧美巨乳在线观看| 免费高清在线视频一区·| 久久精品91| 午夜久久资源| 亚洲综合激情| 亚洲午夜国产成人av电影男同| 亚洲精品社区| 亚洲欧洲一区二区天堂久久| 在线观看欧美日韩| 好男人免费精品视频| 国产一区二区久久| 国产欧美精品一区| 国产精品女人网站| 国产精品福利在线| 欧美日韩一区在线观看| 欧美精品日韩精品| 欧美高清一区| 欧美高清视频在线观看| 你懂的一区二区| 玖玖综合伊人| 老鸭窝毛片一区二区三区| 久久久久一本一区二区青青蜜月| 久久不见久久见免费视频1| 性色av一区二区怡红| 午夜免费在线观看精品视频| 亚洲男人av电影| 亚洲欧美日韩在线观看a三区| 亚洲欧美日韩在线| 欧美亚洲三级| 久久国产综合精品| 久久精品国产一区二区三区| 久久精品视频免费播放| 久久久久久电影|