国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python隱藏功能大揭秘 十個(gè)系統(tǒng)調(diào)用功能你必須知道

開發(fā) 前端
今天我們要探索Python中的一些隱藏功能,這些功能可以幫助你更高效地與操作系統(tǒng)進(jìn)行交互。從簡單的文件操作到高級的系統(tǒng)監(jiān)控,這些功能將讓你大開眼界。話不多說,讓我們開始吧!

今天我們要探索Python中的一些隱藏功能,這些功能可以幫助你更高效地與操作系統(tǒng)進(jìn)行交互。從簡單的文件操作到高級的系統(tǒng)監(jiān)控,這些功能將讓你大開眼界。話不多說,讓我們開始吧!

1.os.system() - 執(zhí)行外部命令

os.system() 是 Python 中執(zhí)行外部命令的最簡單方法之一。它會(huì)等待命令執(zhí)行完成并返回命令的退出狀態(tài)碼。

import os

# 執(zhí)行系統(tǒng)命令
result = os.system('echo Hello, World!')
print(f'Command executed with exit status: {result}')

輸出結(jié)果:

Hello, World!
Command executed with exit status: 0

解釋:os.system() 直接調(diào)用系統(tǒng)命令行執(zhí)行指定的命令,并打印命令的輸出。

2.subprocess.run() - 更強(qiáng)大的外部命令執(zhí)行

subprocess.run() 提供了比os.system() 更強(qiáng)大和靈活的外部命令執(zhí)行功能,可以捕獲命令的輸出。

import subprocess

# 執(zhí)行系統(tǒng)命令并捕獲輸出
result = subprocess.run(['echo', 'Hello, World!'], capture_output=True, text=True)
print(f'Command output: {result.stdout}')
print(f'Command exit status: {result.returncode}')

輸出結(jié)果:

Command output: Hello, World!
Command exit status: 0

解釋:subprocess.run() 返回一個(gè)CompletedProcess 實(shí)例,包含命令的標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤和退出狀態(tài)碼。

3.os.environ - 訪問環(huán)境變量

os.environ 是一個(gè)字典,用于訪問和修改環(huán)境變量。

import os

# 訪問環(huán)境變量
python_path = os.environ.get('PYTHONPATH')
print(f'PYTHONPATH: {python_path}')

# 設(shè)置環(huán)境變量
os.environ['MY_VAR'] = 'Hello, Python!'
print(f'MY_VAR: {os.environ.get("MY_VAR")}')

輸出結(jié)果:

PYTHONPATH: (your PYTHONPATH)
MY_VAR: Hello, Python!

解釋:通過os.environ 可以方便地訪問和修改當(dāng)前進(jìn)程的環(huán)境變量。

4.os.walk() - 遍歷目錄樹

os.walk() 生成目錄樹下的所有文件名,通過遍歷目錄樹,可以方便地處理文件和目錄。

import os

# 遍歷目錄樹
for root, dirs, files in os.walk('/path/to/directory'):
    print(f'Root: {root}')
    print(f'Directories: {dirs}')
    print(f'Files: {files}')
    print('-' * 40)

輸出結(jié)果:

Root: /path/to/directory
Directories: ['subdir1', 'subdir2']
Files: ['file1.txt', 'file2.txt']
----------------------------------------
Root: /path/to/directory/subdir1
Directories: []
Files: ['file3.txt']
----------------------------------------
Root: /path/to/directory/subdir2
Directories: []
Files: ['file4.txt']
----------------------------------------

解釋:os.walk() 返回一個(gè)三元組(root, dirs, files),分別表示當(dāng)前目錄路徑、子目錄列表和文件列表。

5.shutil.copy() - 文件復(fù)制

shutil.copy() 用于復(fù)制文件,支持不同文件系統(tǒng)和設(shè)備之間的復(fù)制。

import shutil

# 復(fù)制文件
source_file = '/path/to/source/file.txt'
destination_file = '/path/to/destination/file.txt'
shutil.copy(source_file, destination_file)
print(f'File copied from {source_file} to {destination_file}')

輸出結(jié)果:

File copied from /path/to/source/file.txt to /path/to/destination/file.txt

解釋:shutil.copy() 將源文件復(fù)制到目標(biāo)位置,如果目標(biāo)文件已存在,會(huì)被覆蓋。

6.shutil.rmtree() - 遞歸刪除目錄

shutil.rmtree() 用于遞歸刪除目錄及其內(nèi)容,類似于 Unix/Linux 的rm -rf 命令。

import shutil

# 遞歸刪除目錄
directory_to_remove = '/path/to/directory'
shutil.rmtree(directory_to_remove)
print(f'Directory {directory_to_remove} removed')

輸出結(jié)果:

Directory /path/to/directory removed

解釋:shutil.rmtree() 遞歸地刪除指定目錄及其所有子目錄和文件。

7.psutil - 獲取系統(tǒng)信息

psutil 是一個(gè)跨平臺(tái)庫,用于輕松獲取系統(tǒng)運(yùn)行的進(jìn)程和系統(tǒng)利用率(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等)信息。

import psutil

# 獲取CPU使用率
cpu_usage = psutil.cpu_percent(interval=1)
print(f'CPU Usage: {cpu_usage}%')

# 獲取內(nèi)存使用率
memory_info = psutil.virtual_memory()
print(f'Total Memory: {memory_info.total / (1024 ** 3):.2f} GB')
print(f'Available Memory: {memory_info.available / (1024 ** 3):.2f} GB')

輸出結(jié)果:

CPU Usage: 10.5%
Total Memory: 16.00 GB
Available Memory: 8.00 GB

解釋:psutil 提供了一組函數(shù)來獲取系統(tǒng)硬件和軟件資源的使用情況。

8.platform - 獲取平臺(tái)信息

platform 模塊用于獲取當(dāng)前系統(tǒng)的平臺(tái)信息,如操作系統(tǒng)類型、版本等。

import platform

# 獲取操作系統(tǒng)信息
system = platform.system()
version = platform.version()
architecture = platform.architecture()
print(f'System: {system}')
print(f'Version: {version}')
print(f'Architecture: {architecture}')

輸出結(jié)果:

System: Darwin
Version: 21.1.0
Architecture: ('64bit', '')

解釋:platform 模塊提供了一系列函數(shù)來獲取當(dāng)前系統(tǒng)的詳細(xì)信息。

9.tempfile - 創(chuàng)建臨時(shí)文件和目錄

tempfile 模塊用于創(chuàng)建臨時(shí)文件和目錄,這些文件和目錄在程序結(jié)束時(shí)會(huì)自動(dòng)刪除。

import tempfile

# 創(chuàng)建臨時(shí)文件
with tempfile.NamedTemporaryFile(mode='w', delete=False) as temp_file:
    temp_file.write('Hello, Temp File!')
    temp_file_path = temp_file.name

print(f'Temporary file created at: {temp_file_path}')

# 創(chuàng)建臨時(shí)目錄
temp_dir = tempfile.TemporaryDirectory()
print(f'Temporary directory created at: {temp_dir.name}')
temp_dir.cleanup()  # 手動(dòng)清理臨時(shí)目錄

輸出結(jié)果:

Temporary file created at: /var/folders/xx/yy/T/tmpk123456
Temporary directory created at: /var/folders/xx/yy/T/tmpabcdefg

解釋:tempfile.NamedTemporaryFile() 創(chuàng)建臨時(shí)文件,tempfile.TemporaryDirectory() 創(chuàng)建臨時(shí)目錄,這些文件和目錄在不再需要時(shí)會(huì)自動(dòng)刪除。

10.signal - 處理信號(hào)

signal 模塊用于處理操作系統(tǒng)信號(hào),如中斷(Ctrl+C)等。

import signal
import time

# 定義信號(hào)處理函數(shù)
def signal_handler(sig, frame):
    print(f'Signal {sig} received. Exiting...')
    exit(0)

# 注冊信號(hào)處理函數(shù)
signal.signal(signal.SIGINT, signal_handler)

print('Press Ctrl+C to exit...')
while True:
    time.sleep(1)

輸出結(jié)果:

Press Ctrl+C to exit...
(Press Ctrl+C)
Signal 2 received. Exiting...

解釋:signal.signal() 注冊一個(gè)信號(hào)處理函數(shù),當(dāng)接收到指定信號(hào)時(shí),調(diào)用該函數(shù)。在這個(gè)例子中,當(dāng)接收到中斷信號(hào)(Ctrl+C)時(shí),程序會(huì)優(yōu)雅地退出。

實(shí)戰(zhàn)案例:系統(tǒng)監(jiān)控腳本

現(xiàn)在,我們將上述知識(shí)結(jié)合起來,編寫一個(gè)簡單的系統(tǒng)監(jiān)控腳本,每隔一定時(shí)間記錄一次CPU和內(nèi)存的使用情況。

import psutil
import time
import os

def log_system_info(log_file):
    with open(log_file, 'a') as f:
        cpu_usage = psutil.cpu_percent(interval=1)
        memory_info = psutil.virtual_memory()
        f.write(f'Timestamp: {time.strftime("%Y-%m-%d %H:%M:%S")}\n')
        f.write(f'CPU Usage: {cpu_usage}%\n')
        f.write(f'Total Memory: {memory_info.total / (1024 ** 3):.2f} GB\n')
        f.write(f'Available Memory: {memory_info.available / (1024 ** 3):.2f} GB\n')
        f.write('-' * 40 + '\n')

if __name__ == "__main__":
    log_file = 'system_monitor.log'
    interval = 10  # 監(jiān)控間隔(秒)

    print(f'Logging system information to {log_file} every {interval} seconds...')

    try:
        while True:
            log_system_info(log_file)
            time.sleep(interval)
    except KeyboardInterrupt:
        print('Monitoring stopped.')

分析:這個(gè)腳本每隔一定時(shí)間記錄一次系統(tǒng)的CPU和內(nèi)存使用情況,并將信息寫入日志文件中。當(dāng)按下 Ctrl+C 時(shí),腳本會(huì)優(yōu)雅地停止運(yùn)行。

總結(jié)

通過今天的文章,我們探索了Python中一些強(qiáng)大的隱藏功能,這些功能涵蓋了從執(zhí)行外部命令到系統(tǒng)監(jiān)控的各個(gè)方面。我們學(xué)習(xí)了如何使用os 和subprocess 模塊執(zhí)行系統(tǒng)命令,shutil 模塊進(jìn)行文件和目錄操作,psutil 模塊獲取系統(tǒng)信息,以及signal 模塊處理操作系統(tǒng)信號(hào)。最后,我們通過一個(gè)實(shí)戰(zhàn)案例展示了如何將這些知識(shí)結(jié)合起來,編寫一個(gè)系統(tǒng)監(jiān)控腳本。

責(zé)任編輯:武曉燕 來源: 小白PythonAI編程
相關(guān)推薦

2016-06-29 13:50:12

云計(jì)算

2021-09-15 09:20:37

Python函數(shù)代碼

2024-06-21 15:00:42

Python系統(tǒng)調(diào)用功能

2023-12-12 17:46:33

系統(tǒng)kswapd0內(nèi)核

2011-05-11 15:28:05

2023-11-13 08:18:56

2011-01-28 15:11:15

PowerShell

2022-06-08 10:42:34

ReduceJavaScript技巧

2023-02-06 16:46:59

JavaScript程序員技巧

2019-04-01 06:37:12

R語言數(shù)據(jù)分析數(shù)據(jù)

2023-10-24 18:05:00

2023-05-11 16:29:39

Javascript開發(fā)前端

2022-06-08 23:45:44

iOS蘋果功能

2022-07-26 09:09:23

Python編程語言代碼

2011-08-11 14:13:02

Windows8

2019-09-04 14:30:54

Nginx功能服務(wù)器

2023-01-17 15:39:17

CSS功能函數(shù)

2021-08-29 23:40:51

手機(jī)華為功能

2021-05-26 08:00:00

微服務(wù)開發(fā)求職

2015-07-23 10:37:13

Linux命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久草成人资源| 四色成人av永久网址| 天堂久久一区| 欧美亚洲禁片免费| 日韩手机在线观看视频| 国产精品videossex久久发布| www.久久撸.com| a级片国产精品自在拍在线播放| 中文字幕日韩一区二区| 午夜在线视频免费观看| 97久久夜色精品国产| 色老头一区二区三区| 在线免费av导航| 欧美日韩国产麻豆| 成人拍拍拍免费视频网站| 成人h动漫精品一区二| 日韩av不卡在线播放| 亚洲免费二区| 国产成人av网址| 亚洲日本视频在线| 在线视频欧美日韩| 午夜久久中文| 欧美成人video| 日本中文字幕伦在线观看| 亚洲成国产人片在线观看| 成人免费在线观看网站| 久久久久久久网| 欧美女人性生活视频| 成人免费观看av| 中文字幕欧美日韩一区二区三区| 亚洲美女啪啪| 国产传媒欧美日韩| 欧美黄色一级视频| 91精品国产高清久久久久久91裸体 | 精品久久香蕉国产线看观看gif| 东京热加勒比无码少妇| 国产成人精品亚洲777人妖| 亚洲欧美精品| 久久精品国产99国产| 色噜噜一区二区| 久久精品亚洲| 色大师av一区二区三区| 日本视频一区二区| 午夜精品区一区二区三| 久久视频一区| 正在播放91九色| 国产一区二区精品久久99| 青青草综合在线| 久久综合久久99| 精品久久久久久中文字幕2017| 国产欧美综合在线观看第十页| 精品久久久久av| 中文字幕日韩一区二区| 黄动漫视频高清在线| 欧美视频在线观看 亚洲欧| 久久经典视频| 日韩一区二区电影在线| 亚洲啊v在线| 神马国产精品影院av| 深夜激情久久| 国产精品爱久久久久久久| 久久精品亚洲欧美日韩精品中文字幕| 91久久精品国产91久久性色tv| 亚洲免费大片| 91精品国产吴梦梦| 国产亚洲一区二区三区在线观看 | 少妇性饥渴无码a区免费| 91丨porny丨国产| 久久撸在线视频| 婷婷综合五月天| 中文字幕在线播放网址| 亚洲小视频在线观看| 99这里只有精品视频| 国产欧美va欧美va香蕉在| 国产精品啊啊啊| 中文字幕成人一区| 国产欧美日韩在线看| 亚洲人成电影| 亚洲黄色在线看| 日韩一二三区在线观看| 欧美一级片在线播放| 天天射成人网| 永久域名在线精品| 亚洲三级在线免费| 制服丝袜在线播放| 久久婷婷国产麻豆91天堂| 欧美少妇xxxx| 亚洲在线欧美| 亚洲欧美成aⅴ人在线观看| 免费在线观看黄色| 欧美成人在线免费| 一区视频在线| 国产男女激情视频| 欧美日韩免费观看一区三区| 日本免费一区二区三区等视频| 国产欧美在线视频| 福利一区二区在线| 欧美大片aaa| 久久久久99精品久久久久| 午夜国产一区二区| 性高湖久久久久久久久aaaaa| 亚洲国产另类av| 欧美三区四区| 国产精品嫩草在线观看| 久久久无码精品亚洲日韩按摩| 永久免费av片在线观看全网站| 久久综合88中文色鬼| 香蕉国产精品偷在线观看不卡| 在线免费观看视频黄| 欧美大胆一级视频| 欧美疯狂party性派对| 国产二区视频在线| 欧美日韩黄色一区二区| 超碰在线亚洲| 成年人免费观看的视频| 欧美日韩人人澡狠狠躁视频| aa亚洲一区一区三区| 久久久久无码国产精品一区| 亚洲天堂成人网| 福利精品在线| 亚洲不卡1区| 色婷婷国产精品综合在线观看| 9l视频自拍蝌蚪9l视频成人| 尤物国产精品| 欧美日韩精品三区| 日韩精品一区二区三区免费观影| 国产黄色一级网站| 亚洲福利精品在线| 亚洲国产日韩在线| 污导航在线观看| 亚州欧美日韩中文视频| 国产ts人妖一区二区| av文字幕在线观看| 亚洲一区久久久| 夜夜揉揉日日人人青青一国产精品| 欧美一级做a| 日本福利视频网站| 精品国产一区二区精华| 欧美久久影院| 一级毛片aaaaaa免费看| 欧美精品videossex性护士| 成人18视频日本| 日本不卡一二三| www.黄色网址.com| 亚洲电影免费观看高清完整版在线观看 | 国产成人精品在线观看| 国产亚洲综合在线| 99久热在线精品视频观看| 肉大捧一出免费观看网站在线播放| 日韩午夜激情电影| 免费日韩视频| 污污网站在线观看| 日韩高清国产一区在线观看| 日韩午夜在线观看视频| 日韩中文字幕不卡| 毛片网站在线看| 亚洲一区二区三区乱码| 精品国产污网站| 九一久久久久久| 高清成人在线| 欧美三级在线观看视频| 久久夜色精品国产| 国产三级欧美三级日产三级99 | 在线观看国产高清视频| 日韩免费在线播放| 亚洲免费观看高清完整版在线观看 | 成人美女免费网站视频| 欧美日韩国产丝袜另类| 国产精品传媒精东影业在线| 台湾av在线二三区观看| 国产精品18毛片一区二区| 久久久噜噜噜久久中文字幕色伊伊| 国产日本精品| av一区二区在线播放| 国产一区二区三区四区大秀| 在线精品一区| 国产高清亚洲一区| 一本色道综合亚洲| 亚洲伦理中文字幕| 久久成人精品电影| 成人动漫视频在线观看免费| 成人在色线视频在线观看免费大全 | 福利精品视频| 精品国产91乱码一区二区三区 | 国产精品一区二区三区美女| 久久精品蜜桃| 高清日韩av电影| 永久免费在线观看| 国产 欧美 日韩 一区| 中文字幕在线日韩| 欧美精品丝袜中出| 99精品视频中文字幕| 奇米一区二区| 亚洲一区久久久| 欧美亚洲综合另类| 韩国v欧美v日本v亚洲v| 欧美成人精品一级| 一二三四社区在线视频6| 国产视频一区二区三区四区| 日韩精品极品视频免费观看|