Python提供了os模块,用于处理文件和目录的路径以及常见的系统操作。使用os模块可以方便地进行文件操作、目录操作、进程管理等。下面我们将讲解os模块的常用方法和属性。
使用os.name属性获取当前系统的名称。在Unix系统上,返回值为'posix',在Windows系统上,返回值为'nt'。
import os
print(os.name)
输出:
nt
使用os.sep属性获取当前系统的路径间隔符(Windows为'\',Unix为'/')。
import os
print(os.sep)
输出:
\
使用os.path.split方法将路径分割成目录和文件名两部分。如果给定的路径最后一个部分非空,则返回的元组的第二个元素为该部分,否则返回空字符串。
import os
path = 'C:\\Users\\username\\Documents\\example.txt'
dirname, filename = os.path.split(path)
print('目录名:', dirname)
print('文件名:', filename)
输出:
目录名: C:\Users\username\Documents
文件名: example.txt
使用os.listdir方法获取指定目录下的所有文件(包含目录)的列表。
import os
dir_path = 'C:\\Users\\username\\Documents'
files = os.listdir(dir_path)
for file in files:
print(file)
输出:
example.txt
projects
import os
dir_path = 'C:\\Users\\username\\Documents'
new_dir_name = 'newdir'
if not os.path.exists(os.path.join(dir_path, new_dir_name)):
# 如果目录不存在,则创建
os.mkdir(os.path.join(dir_path, new_dir_name))
print('创建目录成功')
else:
print('目录已存在')
该示例通过os.path.join方法将目录名和父目录路径结合起来,再使用os.mkdir方法创建了一个新目录,如果目录已存在则不进行任何操作。
import os
dir_path = 'C:\\Users\\username\\Documents'
def search_files(path):
"""
递归遍历指定目录下的所有文件(不包含目录)
"""
files = os.listdir(path)
for file in files:
file_path = os.path.join(path, file)
if os.path.isfile(file_path):
# 如果是文件,则输出文件路径
print(file_path)
else:
# 如果是目录,则递归遍历
search_files(file_path)
search_files(dir_path)
该示例定义了一个递归遍历目录的函数search_files,通过os.path.isfile方法判断路径是否为文件,最终输出所有文件的路径。
本文链接:http://task.lmcjl.com/news/15184.html