Python与操作系统的十个高级交互指令

大家好!今天我们要聊的是Python与操作系统的高级交互。操作系统是计算机硬件和应用程序之间的桥梁,而Python提供的库让我们可以轻松地与操作系统进行交互。无论是Windows还是Linux,Python都能帮助我们完成很多任务。

查看当前工作目录

首先,我们来看看如何查看当前的工作目录。这在处理文件路径时非常有用。

复制
import os # 获取当前工作目录 current_directory = os.getcwd() print("当前工作目录:", current_directory)1.2.3.4.5.

输出:

复制
当前工作目录: /path/to/your/current/directory1.
列出目录下的所有文件

接下来,我们学习如何列出目录下的所有文件。这对于自动化脚本来说非常重要。

复制
import os # 列出当前目录下的所有文件 files = os.listdir(.) for file in files: print(file)1.2.3.4.5.6.

输出:

复制
file1.txt file2.jpg folder11.2.3.
创建新目录

有时我们需要创建一个新的目录来组织文件。下面是一个简单的例子。

复制
import os # 创建新目录 new_dir = new_folder os.mkdir(new_dir) print(f"新目录 {new_dir} 已创建")1.2.3.4.5.6.

输出:

复制
新目录 new_folder 已创建1.
删除目录

当不再需要某个目录时,我们可以将其删除。

复制
import os # 删除目录 dir_to_remove = new_folder os.rmdir(dir_to_remove) print(f"目录 {dir_to_remove} 已删除")1.2.3.4.5.6.

输出:

复制
目录 new_folder 已删除1.
运行外部命令

Python允许我们直接运行外部命令。这对于执行一些特定的任务非常方便。

复制
import subprocess # 运行外部命令 command = "ls -l" result = subprocess.run(command, shell=True, text=True, capture_output=True) print(result.stdout)1.2.3.4.5.6.

输出:

复制
total 0 drwxr-xr-x 2 user user 4096 Mar 1 14:00 folder1 -rw-r--r-- 1 user user 0 Mar 1 14:00 file1.txt1.2.3.
获取系统信息

获取系统信息可以帮助我们更好地了解运行环境。

复制
import platform # 获取系统信息 info = platform.uname() print(f"系统名称: {info.system}") print(f"节点名称: {info.node}") print(f"版本: {info.release}")1.2.3.4.5.6.7.

输出:

复制
系统名称: Linux 节点名称: mycomputer 版本: 5.4.0-77-generic1.2.3.
监听文件变化

有时候我们需要监控文件或目录的变化,例如自动备份等。

复制
from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_modified(self, event): print(f"{event.src_path} 已修改") if __name__ == "__main__": path = "." event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path, recursive=True) observer.start() try: while True: pass 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.

这段代码会监听当前目录下所有文件的变化,并打印出修改的信息。

复制文件

复制文件是日常工作中常见的需求之一。Python中的shutil模块提供了复制文件的功能。

复制
import shutil # 源文件和目标文件 source_file = file1.txt destination_file = copy_of_file1.txt # 复制文件 shutil.copy(source_file, destination_file) print(f"文件 {source_file} 已复制为 {destination_file}")1.2.3.4.5.6.7.8.9.

输出:

复制
文件 file1.txt 已复制为 copy_of_file1.txt1.
移动文件

除了复制文件外,移动文件也是常见的需求。同样使用shutil模块可以实现。

复制
import shutil # 源文件和目标文件 source_file = copy_of_file1.txt destination_file = folder1/moved_file1.txt # 移动文件 shutil.move(source_file, destination_file) print(f"文件 {source_file} 已移动到 {destination_file}")1.2.3.4.5.6.7.8.9.

输出:

复制
文件 copy_of_file1.txt 已移动到 folder1/moved_file1.txt1.
文件权限管理

在某些情况下,我们需要对文件的权限进行管理,比如更改文件的所有者或者设置文件权限。

复制
import os # 文件路径 file_path = folder1/moved_file1.txt # 更改文件权限 os.chmod(file_path, 0o777) # 设置文件权限为可读、可写、可执行 print(f"文件 {file_path} 的权限已更改为 0777") # 更改文件所有者 # 在Linux中,可以使用os.chown()方法更改文件所有者 # 但在Python中通常不推荐这样做,因为需要root权限 # 如果确实需要,可以使用以下代码: # os.chown(file_path, uid, gid) print(f"文件 {file_path} 的权限已更改为 0777")1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.

输出:

复制
文件 folder1/moved_file1.txt 的权限已更改为 0777 文件 folder1/moved_file1.txt 的权限已更改为 07771.2.
实战案例:自动备份工具

假设你有一个重要的文件夹,需要定期进行备份。我们可以编写一个Python脚本来自动完成这个任务。下面是一个简单的例子:

复制
import os import shutil import datetime def backup_files(source_folder, backup_folder): # 获取当前日期和时间 now = datetime.datetime.now() timestamp = now.strftime("%Y%m%d_%H%M%S") # 创建备份目录 backup_subfolder = os.path.join(backup_folder, timestamp) os.makedirs(backup_subfolder, exist_ok=True) # 复制文件 for root, dirs, files in os.walk(source_folder): for file in files: source_file = os.path.join(root, file) relative_path = os.path.relpath(source_file, source_folder) destination_file = os.path.join(backup_subfolder, relative_path) os.makedirs(os.path.dirname(destination_file), exist_ok=True) shutil.copy2(source_file, destination_file) print(f"备份完成:{source_folder} -> {backup_subfolder}") if __name__ == "__main__": source_folder = /path/to/source/folder backup_folder = /path/to/backup/folder backup_files(source_folder, backup_folder)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.

分析:

获取当前日期和时间:使用datetime模块获取当前的时间戳。创建备份目录:根据时间戳创建一个新的子目录。复制文件:遍历源文件夹中的所有文件,并将它们复制到备份目录中。

这个脚本可以在定时任务中运行,例如每天凌晨自动执行一次,以确保数据的安全性。

以上就是关于Python与操作系统交互的十个高级指令。希望大家通过这些例子能够更好地理解和应用Python的强大功能。如果你有任何问题或建议,请随时留言讨论!

THE END
本站服务器由亿华云赞助提供-企业级高防云服务器