Python基础教程(Python OS 文件/目录方法)
在 Python 中,
os 模块提供了很多与操作系统进行交互的功能,尤其是在文件和目录操作方面。下面为你详细介绍 os 模块中常用的文件 / 目录方法:1. 路径操作
os.getcwd():返回当前工作目录的绝对路径。
import os
current_dir = os.getcwd()
print(current_dir)
os.chdir(path):改变当前工作目录到指定的path。
import os
new_dir = '/path/to/new/directory'
os.chdir(new_dir)
os.path.join(path1, path2, ...):将多个路径组合成一个完整的路径,会根据操作系统自动处理路径分隔符。
import os
path = os.path.join('home', 'user', 'documents')
print(path) # 在 Unix 系统上输出 'home/user/documents'
os.path.abspath(path):返回指定路径的绝对路径。
import os
relative_path = 'test.txt'
absolute_path = os.path.abspath(relative_path)
print(absolute_path)
os.path.dirname(path):返回指定路径的目录部分。
import os
path = '/home/user/documents/test.txt'
dir_name = os.path.dirname(path)
print(dir_name) # 输出 '/home/user/documents'
os.path.basename(path):返回指定路径的文件名部分。
import os
path = '/home/user/documents/test.txt'
base_name = os.path.basename(path)
print(base_name) # 输出 'test.txt'
os.path.split(path):将路径拆分为目录部分和文件名部分,返回一个元组。
import os
path = '/home/user/documents/test.txt'
dir_part, file_part = os.path.split(path)
print(dir_part) # 输出 '/home/user/documents'
print(file_part) # 输出 'test.txt'
2. 文件和目录的存在性及属性检查
os.path.exists(path):检查指定的路径是否存在。
import os
path = '/home/user/documents/test.txt'
if os.path.exists(path):
print('路径存在')
else:
print('路径不存在')
os.path.isfile(path):检查指定的路径是否为一个文件。
import os
path = '/home/user/documents/test.txt'
if os.path.isfile(path):
print('是文件')
else:
print('不是文件')
os.path.isdir(path):检查指定的路径是否为一个目录。
import os
path = '/home/user/documents'
if os.path.isdir(path):
print('是目录')
else:
print('不是目录')
os.path.getsize(path):返回指定文件的大小(以字节为单位)。
import os
path = '/home/user/documents/test.txt'
file_size = os.path.getsize(path)
print(f'文件大小: {file_size} 字节')
os.path.getmtime(path):返回指定文件的最后修改时间(时间戳)。
import os
import time
path = '/home/user/documents/test.txt'
last_modified = os.path.getmtime(path)
print(f'最后修改时间: {time.ctime(last_modified)}')
3. 文件和目录的创建与删除
os.mkdir(path):创建一个新的目录,如果目录已存在会抛出FileExistsError异常。
import os
new_dir = '/home/user/new_directory'
try:
os.mkdir(new_dir)
print('目录创建成功')
except FileExistsError:
print('目录已存在')
os.makedirs(path, exist_ok=False):递归创建目录,即可以创建多级目录。exist_ok为True时,如果目录已存在不会抛出异常。
import os
new_dir = '/home/user/new_directory/sub_directory'
os.makedirs(new_dir, exist_ok=True)
os.rmdir(path):删除指定的空目录,如果目录不为空会抛出OSError异常。
import os
empty_dir = '/home/user/empty_directory'
try:
os.rmdir(empty_dir)
print('目录删除成功')
except OSError:
print('目录不为空或不存在')
os.removedirs(path):递归删除目录,从最内层目录开始删除,直到遇到非空目录或根目录。
import os
path = '/home/user/new_directory/sub_directory'
os.removedirs(path)
os.remove(path):删除指定的文件。
import os
file_to_remove = '/home/user/documents/test.txt'
try:
os.remove(file_to_remove)
print('文件删除成功')
except FileNotFoundError:
print('文件不存在')
4. 文件和目录的重命名与移动
os.rename(src, dst):将文件或目录src重命名为dst,也可用于移动文件或目录到不同的位置。
import os
src = '/home/user/documents/test.txt'
dst = '/home/user/new_documents/new_test.txt'
os.rename(src, dst)
5. 列出目录内容
os.listdir(path='.'):返回指定目录下的所有文件和目录的名称列表,默认是当前工作目录。
import os
dir_path = '/home/user/documents'
files_and_dirs = os.listdir(dir_path)
for item in files_and_dirs:
print(item)
这些是
os 模块中常用的文件 / 目录操作方法,通过灵活运用这些方法,可以方便地对文件和目录进行各种操作。
浙公网安备 33010602011771号