python 常见OS基本操作
python 常见OS基本操作
Python 的 os
模块提供了与操作系统交互的各种功能。下面按照一些常见的使用场景,按顺序介绍 os
模块的一些基本操作及其示例代码。
1. 获取和改变当前工作目录
首先,通常我们会获取当前的工作目录,然后可能会改变工作目录。
python深色版本
import os
# 获取当前工作目录
print("当前工作目录:", os.getcwd())
# 改变工作目录
os.chdir('/path/to/new/directory')
print("新的工作目录:", os.getcwd())
2. 目录操作
接下来,我们可以创建新的目录或者删除旧的目录。
python深色版本
# 创建目录
os.mkdir('new_directory') # 创建单个目录
os.makedirs('parent_directory/sub_directory') # 创建多级目录
# 删除目录
os.rmdir('empty_directory') # 删除空目录
os.removedirs('parent_directory/empty_sub_directory') # 删除多级空目录
3. 文件操作
接着,我们可以创建、打开、读写文件,也可以删除文件。
# 创建或打开文件
with open('example.txt', 'w') as file:
file.write('Hello, world!')
# 读取文件
with open('example.txt', 'r') as file:
content = file.read()
print(content)
# 删除文件
os.remove('example.txt')
4. 文件和目录列表
我们可以查看指定目录下的文件和子目录。
python深色版本
# 列出当前目录下的所有文件和目录
print("当前目录下的文件和目录:")
for entry in os.listdir('.'):
print(entry)
# 判断是否为文件或目录
entries = os.listdir('.')
for entry in entries:
full_path = os.path.join('.', entry)
if os.path.isfile(full_path):
print(f"{entry} 是文件")
elif os.path.isdir(full_path):
print(f"{entry} 是目录")
5. 重命名文件或目录
我们还可以重命名文件或目录。
python深色版本
# 重命名文件
os.rename('old_file.txt', 'new_file.txt')
# 重命名目录
os.rename('old_directory', 'new_directory')
6. 文件路径操作
对文件路径进行分割、组合等操作。
python深色版本
# 获取文件的绝对路径
print("文件的绝对路径:", os.path.abspath('example.txt'))
# 组合路径
print("组合后的路径:", os.path.join('/path/to', 'example.txt'))
# 分割路径
print("分割路径:", os.path.split('/path/to/example.txt'))
# 获取文件扩展名
print("文件扩展名:", os.path.splitext('example.txt')[1])
7. 环境变量
获取系统环境变量。
python深色版本
# 获取环境变量
print("环境变量 PATH:", os.environ.get('PATH'))
8. 运行系统命令
执行系统命令。
python深色版本
# 运行系统命令
os.system('echo Hello from the system command line!')
9. 文件权限操作
更改文件权限(需要管理员权限)。
python深色版本
import stat
# 更改文件权限
os.chmod('example.txt', stat.S_IRUSR | stat.S_IWUSR) # 设置文件只读和可写权限给用户
在 Python 中,你可以使用 os
模块来获取当前项目的路径,并结合 os.path
模块中的函数来获取当前项目路径下的子路径。以下是具体步骤和示例代码:
1. 获取当前脚本的绝对路径
首先,你需要获取当前运行脚本的绝对路径。
python深色版本
import os
# 获取当前脚本的绝对路径
script_path = os.path.abspath(__file__)
print("当前脚本的绝对路径:", script_path)
2. 获取当前项目的根目录
然后,你可以从脚本的路径中提取出项目的根目录。这取决于你的项目结构,如果你的脚本位于项目的根目录下,则可以直接使用脚本所在目录作为项目根目录。
python深色版本
# 获取当前脚本所在的目录
project_root = os.path.dirname(script_path)
print("项目根目录:", project_root)
如果你的脚本在一个子目录中,比如 src
目录下,那么你可以继续向上一级目录走。
python深色版本
# 如果脚本位于 src 目录下,获取上一级目录
project_root = os.path.dirname(os.path.dirname(script_path))
print("项目根目录:", project_root)
3. 获取子路径
一旦你有了项目的根目录,就可以通过 os.path.join()
函数来构建项目内的任何子路径。
python深色版本
# 构建子路径
sub_directory = os.path.join(project_root, 'data')
print("子目录路径:", sub_directory)
# 检查该子目录是否存在
if not os.path.exists(sub_directory):
os.makedirs(sub_directory) # 如果不存在则创建
# 获取子目录下的所有文件和目录
files_in_subdirectory = os.listdir(sub_directory)
print("子目录下的文件和目录:", files_in_subdirectory)
示例代码汇总
将上述代码汇总如下:
python深色版本
import os
# 获取当前脚本的绝对路径
script_path = os.path.abspath(__file__)
print("当前脚本的绝对路径:", script_path)
# 获取当前脚本所在的目录作为项目根目录
project_root = os.path.dirname(script_path)
print("项目根目录:", project_root)
# 如果脚本位于 src 目录下,获取上一级目录
# project_root = os.path.dirname(os.path.dirname(script_path))
# print("项目根目录:", project_root)
# 构建子路径
sub_directory = os.path.join(project_root, 'data')
print("子目录路径:", sub_directory)
# 检查该子目录是否存在
if not os.path.exists(sub_directory):
os.makedirs(sub_directory) # 如果不存在则创建
# 获取子目录下的所有文件和目录
files_in_subdirectory = os.listdir(sub_directory)
print("子目录下的文件和目录:", files_in_sub_directory)
这段代码会输出当前脚本的绝对路径、项目的根目录、子目录的路径以及子目录中存在的文件和目录。如果你的项目结构有所不同,可以根据实际情况调整获取项目根目录的方式。