在办公环境中,Python的强大不仅限于数据处理和分析,它还能与操作系统进行深度交互,实现自动化任务,极大地提高工作效率。本文将带你探索Python中用于操作系统交互的15个高级命令,通过实践示例让你掌握这些技巧。

1. 使用os模块执行系统命令
os模块提供了许多与操作系统交互的功能,比如执行系统命令。
复制
import os
# 执行系统命令
result = os.system(ls -l)
print(f命令执行结果: {result})1.2.3.4.5.
2. subprocess模块更高级的命令执行
subprocess模块提供了更灵活和强大的命令执行功能。
复制
import subprocess
# 执行命令并获取输出
result = subprocess.run([ls, -l], capture_output=True, text=True)
print(f命令输出: {result.stdout})1.2.3.4.5.
3. shutil模块用于文件操作
shutil模块提供了一系列用于文件操作的高级功能,如复制、移动和删除文件。
复制
import shutil
# 复制文件
shutil.copy(source.txt, destination.txt)1.2.3.4.
4. 遍历目录树
使用os.walk可以遍历目录树。
复制
import os
for root, dirs, files in os.walk(/path/to/directory):
print(fRoot: {root}, Directories: {dirs}, Files: {files})1.2.3.4.
5. glob模块用于文件匹配
glob模块可以方便地匹配文件路径模式。
复制
import glob
# 匹配所有.txt文件
for filename in glob.glob(*.txt):
print(filename)1.2.3.4.5.
6. tempfile模块创建临时文件
tempfile模块用于创建临时文件和目录。
复制
import tempfile
# 创建临时文件
with tempfile.NamedTemporaryFile(delete=False) as temp_file:
temp_file.write(bHello, world!)
print(fTemp file created: {temp_file.name})1.2.3.4.5.6.
7. pathlib模块更现代的路径操作
pathlib模块提供了面向对象的文件系统路径操作。
复制
from pathlib import Path
# 创建路径对象
path = Path(/path/to/directory)
# 获取目录内容
for file in path.iterdir():
print(file)1.2.3.4.5.6.7.8.
8. platform模块获取系统信息
platform模块可以获取操作系统信息。
复制
import platform
print(fSystem: {platform.system()})
print(fNode Name: {platform.node()})
print(fRelease: {platform.release()})1.2.3.4.5.
9. psutil库监控系统资源
psutil是一个跨平台库,用于检索系统运行的进程和系统利用率信息。
复制
import psutil
# 获取CPU使用率
print(fCPU Usage: {psutil.cpu_percent()}%)1.2.3.4.
10. watchdog库监控文件系统变化
watchdog库可以监控文件系统的变化,如文件创建、修改和删除。
复制
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
print(fFile {event.src_path} has been modified)
# 创建事件处理器和观察者
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path=, recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.
11. paramiko库进行SSH连接
paramiko库用于通过SSH连接到远程服务器。
复制
import paramiko
# 创建SSH客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username=username, password=password)
# 执行命令
stdin, stdout, stderr = ssh.exec_command(ls -l)
print(stdout.read().decode())
# 关闭连接
ssh.close()1.2.3.4.5.6.7.8.9.10.11.12.13.
12. fabric库简化SSH任务
fabric是一个Python库,用于简化SSH任务的执行。
复制
from fabric import Connection
c = Connection(hostname, user=username, connect_kwargs={password: password})
result = c.run(ls -l)
print(result.stdout)1.2.3.4.5.
13. croniter库处理cron表达式
croniter库用于解析和迭代cron表达式。
复制
from croniter import croniter
from datetime import datetime
cron = croniter(*/5 * * * *, datetime.now())
for _ in range(5):
print(cron.get_next(datetime))1.2.3.4.5.6.
14. schedule库安排任务
schedule库用于安排周期性任务。
复制
import schedule
import time
def job():
print(Job executed)
# 安排任务每分钟执行一次
schedule.every(1).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)1.2.3.4.5.6.7.8.9.10.11.12.
15. APScheduler库高级任务调度
APScheduler是一个功能强大的任务调度库。
复制
from apscheduler.schedulers.background import BackgroundScheduler
import time
def my_job():
print(Job executed)
scheduler = BackgroundScheduler()
scheduler.add_job(my_job, interval, seconds=5)
scheduler.start()
try:
while True:
time.sleep(2)
except (KeyboardInterrupt, SystemExit):
scheduler.shutdown()1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.
实战案例:自动备份脚本
假设你需要每天定时备份某个目录到另一个位置,可以使用shutil和schedule库来实现。
复制
import shutil
import schedule
import time
from datetime import datetime
def backup(source, destination):
shutil.copytree(source, destination + / + datetime.now().strftime(%Y%m%d_%H%M%S))
print(fBackup completed at {datetime.now()})
# 安排每天凌晨1点执行备份任务
schedule.every().day.at(01:00).do(backup, /path/to/source, /path/to/destination)
while True:
schedule.run_pending()
time.sleep(1)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.
在这个脚本中,shutil.copytree用于复制整个目录树,schedule.every().day.at(01:00)用于安排每天凌晨1点执行任务。这样,你就可以自动备份重要数据,无需手动操作。
总结
通过本文,我们学习了Python中与操作系统交互的15个高级命令,包括执行系统命令、文件操作、监控文件系统变化、SSH连接、任务调度等。这些命令和库可以帮助你实现自动化办公任务,提高工作效率。