深圳建专业网站,手机网站制作的价格,网站一个多少钱,价格营销策略案例3.1.1 文件和目录操作
os.getcwd(): 获取当前工作目录的路径。
import os# 获取当前工作目录
current_directory os.getcwd()
print(当前工作目录是:, current_directory)
os.chdir(path): 改变当前工作目录到指定的路径。
import os# 改变当前工作目录
os.c…
3.1.1 文件和目录操作
os.getcwd(): 获取当前工作目录的路径。
import os# 获取当前工作目录
current_directory os.getcwd()
print(当前工作目录是:, current_directory)
os.chdir(path): 改变当前工作目录到指定的路径。
import os# 改变当前工作目录
os.chdir(G:/WYPYTHON/PY-AGIN/1.Python基础入门/15.文件操作/test)# 再次获取当前工作目录以确认改变
new_directory os.getcwd()
print(新的工作目录是:, new_directory)
os.listdir(path): 列出指定目录下的所有文件和子目录名。
import os# 列出指定目录下的所有文件和子目录
files_and_directories os.listdir(G:/WYPYTHON/PY-AGIN/1.Python基础入门)
print(目录下的文件和子目录:, files_and_directories)# 返回结果是一个列表
# 目录下的文件和子目录: [1.1.快速上手, 1.2.数据结构, 1.计算小组赛的得分.py]
os.mkdir(name): 创建新目录。
# 创建新目录
os.mkdir(new_directory_path)# 检查新目录是否存在
if os.path.exists(G:/WYPYTHON/PY-AGIN/1.Python基础入门/16.标准库/1.os模块/new_directory):print(新目录已创建.)
else:print(创建目录失败.)
os.rmdir(name): 删除空目录。
import os# 删除空目录
os.rmdir(G:/WYPYTHON/PY-AGIN/1.Python基础入门/16.标准库/1.os模块/new_directory)# 检查目录是否已被删除
if not os.path.exists(G:/WYPYTHON/PY-AGIN/1.Python基础入门/16.标准库/1.os模块/new_directory):print(空目录已被删除.)
else:print(删除目录失败.)
os.remove(path): 删除文件。
import os# 删除文件
os.remove(G:/WYPYTHON\PY-AGIN/1.Python基础入门/15.文件操作/wuyan.txt)# 检查文件是否已被删除
if not os.path.exists(G:/WYPYTHON\PY-AGIN/1.Python基础入门/15.文件操作/wuyan.txt):print(文件已被删除.)
else:print(删除文件失败.)
os.pathos模块的子模块提供了用于处理文件路径的函数如os.path.exists(path)检查路径是否存在os.path.join(path1, path2)连接多个路径名组件等。
import os# 检查路径是否存在
if os.path.exists(G:/WYPYTHON/PY-AGIN/1.Python基础入门/16.标准库/1.os模块/6.删除文件.py):print(文件路径存在.)
else:print(文件路径不存在.)# 连接多个路径名组件
full_path os.path.join(G:/WYPYTHON/PY-AGIN/1.Python基础入门/16.标准库, 1.os模块, 6.删除文件.py)
print(完整的文件路径是:, full_path)
3.1.2 环境变量
环境变量是操作系统中存储配置信息的一种方式它们可以被运行在系统上的任何程序访问。Python的os模块提供了访问和修改这些环境变量的接口。以下是如何使用os.environ来读取和修改环境变量的例子
os.environ: 一个字典对象表示环境变量。可以读取和修改环境变量的值。
os.environ.get(key): 获取环境变量的值。
import os# 读取名为PATH的环境变量的值
path os.environ.get(PATH)
print(PATH 环境变量的值:, path)# 读取名为HOME的环境变量的值如果它不存在则返回一个默认值
home os.environ.get(HOME, Default Home Directory)
print(HOME 环境变量的值或默认值:, home)
os.environ.set(key, value): 设置环境变量的值。
import os # 获取当前PATH环境变量的值
current_path os.environ.get(PATH) # 在当前PATH环境变量的值前添加一个新的路径
new_path C:\\NewDirectory\\bin; current_path # 设置新的PATH环境变量
os.environ[PATH] new_path # 验证新的PATH环境变量
updated_path os.environ.get(PATH)
print(更新后的PATH 环境变量的值:, updated_path)
请注意使用os.environ[key] value来设置环境变量通常只会影响当前Python进程及其子进程的环境变量。它不会改变操作系统级别的环境变量也就是说当Python进程结束后这些更改不会持续存在。
此外对于os.environ.set(key, value)实际上在Python的标准库中并没有这个方法。通常我们使用os.environ[key] value来设置环境变量。如果你看到os.environ.set(key, value)它可能是某个特定环境或第三方库提供的方法而不是Python标准库的一部分。
如果你想永久地修改操作系统的环境变量你需要通过操作系统的特定方式来设置这通常涉及到编辑配置文件如Windows上的系统属性Linux上的.bashrc或.bash_profile等或使用特定的命令行工具。 3.1.3 进程管理
os.getpid(): 获取当前进程的进程ID。os.getpid() 是一个函数用于获取当前进程的进程IDPID。这个PID是一个唯一的整数用于在操作系统中标识进程。
# 获取当前进程的进程ID
current_pid os.getpid()
print(f当前进程的PID是: {current_pid})
os.kill(pid, signal): 向指定进程发送信号。
import os
import signal
import time# 获取当前进程的进程ID
current_pid os.getpid()
print(f当前进程的PID是: {current_pid})# 定义一个函数用于接收SIGTERM信号并优雅地终止
def handle_termination(signal, frame):print(接收到SIGTERM信号开始退出...)# 可以在这里执行清理工作如关闭文件、断开数据库连接等exit(0)# 注册信号处理函数
signal.signal(signal.SIGTERM, handle_termination)# 等待一段时间以便观察进程
time.sleep(5)# 现在我们假设另一个进程或脚本想要终止当前进程
# 我们可以使用os.kill来发送SIGTERM信号
os.kill(current_pid, signal.SIGTERM)
在上面的例子中我们首先获取了当前进程的PID并打印出来。然后我们定义了一个处理函数handle_termination它将在接收到SIGTERM信号时被调用。我们使用signal.signal()函数注册了这个处理函数以便在接收到SIGTERM信号时能够优雅地终止进程。
接下来我们让进程休眠5秒钟以便有足够的时间观察其行为。最后我们使用os.kill()函数向当前进程发送了一个SIGTERM信号。由于我们已经注册了信号处理函数因此当信号到达时handle_termination函数将被调用并打印出一条消息然后进程将退出。
请注意在实际应用中通常不会在同一脚本中使用os.kill()来杀死自己因为这样做没有太大的意义。上面的例子仅用于演示如何使用os.kill()函数。在实际应用中你可能会使用os.kill()来发送信号给其他进程例如你可能想要终止一个由你的程序启动的子进程。 3.1.4 执行系统命令
os.system(command): 执行系统命令并返回命令的退出状态。
os.system() 函数用于执行传递给它的字符串参数作为系统命令并返回命令的退出状态。退出状态是一个整数通常如果命令成功执行则返回 0否则返回非零值。
os.execv(path, args): 执行新的程序替换当前进程。
os.execv() 函数用于执行一个新的程序它会替换当前进程的映像。这意味着调用 os.execv() 后当前进程将不再执行 Python 代码而是开始执行新程序。os.execv() 需要两个参数新程序的路径和一个参数列表以列表形式提供。
3.1.5 注意事项 可移植性os模块的函数通常是跨平台的但某些函数可能在某些操作系统上不可用或行为不同。编写代码时应注意检查函数在不同平台上的行为和兼容性。 避免直接使用os模块进行文件读写对于文件的读写操作通常推荐使用Python内置的open()函数而不是直接使用os模块。open()函数提供了更灵活和强大的文件操作功能。 小心处理环境变量修改环境变量可能会影响到程序的行为和其他依赖环境变量的进程。在修改环境变量时应确保了解其影响并在程序结束时恢复其原始值。 谨慎使用os.system()os.system()函数会调用系统的shell来执行命令这可能会带来安全风险特别是当命令字符串由用户输入时。在使用os.system()时应确保输入的命令是安全的或者使用其他更安全的方法来执行系统命令。 避免使用from os import *这样做会将os模块的所有内容导入到当前命名空间中可能导致命名冲突和不可预见的行为。建议使用import os并显式地调用os模块的函数以提高代码的可读性和可维护性。
总之os模块提供了与操作系统交互的强大功能但在使用时应注意跨平台兼容性、安全性以及代码的可读性和可维护性。