这个模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。一个例子就是使用os.sep可以取代操作系统特定的路径分割符。 下面直接看代码吧:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
# 定义几个函数
def del_file(wpath):
os.remove(wpath) # 删除文件
def del_dir(wpath):
os.removedirs(wpath) # 删除空文件夹
def gen_dir(wpath):
if os.path.exists(wpath):
pass
else:
os.mkdir(wpath) # 建立文件夹
def gen_file(wpath):
if os.path.exists(wpath):
pass
else:
os.mknod(wpath) # 建立文件
print(os.sep)
print(os.linesep) # 字符串给出当前平台使用的行终止符
# print(os.environ)
if os.name == 'posix':
home_path = os.environ['HOME']
home_path = os.getenv('HOME') #读取环境变量
elif os.name == 'nt':
home_path = 'd:' # win 下未测试
# 定义进行测试的文件夹与文件的名称
tep_dir = 'xx_tep'
tep_dir_a = 'tep_dir_a'
tep_dir_b = 'tep_dir_b'
tep_file_a = 'tep_file_a.txt'
tep_file_b = 'tep_file_b.py'
tep_file_c = 'tep_file_c.c'
# 合成文件夹与文件的全路径
path_tep = os.path.join(home_path, tep_dir)
path_dir_a = os.path.join(path_tep, tep_dir_a)
path_dir_b = os.path.join(path_tep, tep_dir_b)
path_file_a = os.path.join(path_dir_a, tep_file_a)
path_file_b = os.path.join(path_dir_a, tep_file_b)
path_file_c = os.path.join(path_dir_b, tep_file_c)
# 在系统内生成相应的文件夹与文件
gen_dir(path_tep)
gen_dir(path_dir_a)
gen_dir(path_dir_b)
gen_file(path_file_a)
gen_file(path_file_b)
gen_file(path_file_c)
cwd = os.getcwd() # 得到当前工作目录,即当前Python脚本工作的目录路径。wlist = os.listdir(cwd)
for wli in wlist:
print(wli)
os.chdir(path_tep) # 切换路径
cwd = os.getcwd() # 得到当前工作目录,即当前Python脚本工作的目录路径。wlist = os.listdir(cwd)
for wli in wlist:
print(wli)
if os.path.isdir(path_dir_a): # 判断是否文件夹
tep_size = os.path.getsize(path_dir_a)
print(tep_size)
if os.path.isfile(path_file_a):
tep_size = os.path.getsize(path_file_a) # 获得文件大小
print(tep_size)
for wroot, wdirs, wfiles in os.walk(path_tep):
for wfile in wfiles:
file_path = os.path.abspath(wfile) # 获得绝对路径
print(file_path)
# 返回文件名
filename = os.path.basename(path_file_a)
print(filename)
# 返回文件路径
dirname = os.path.dirname(path_file_a)
print(dirname)
# 分割文件名与目录
# 事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,# 同时它不会判断文件或目录是否存在
(filepath, filename) = os.path.split(path_file_a)
print(filepath, filename)
(fname, fext) = os.path.splitext(filename) # 分离文件名与扩展名
print(fname, fext)
# 清理文件与文件夹
del_file(path_file_a)
del_file(path_file_b)
del_dir(path_dir_a)
del_file(path_file_c)
del_dir(path_dir_b)