Python开发6——常用模块
一、os模块
1、os.name:显示当前使用的平台
print(os.name) # 'nt':这表示Windows print(os.name) # 'posix':这表示Linux
2、os.curdir:返回当前目录的字符串名:'.'
3、os.pardir:返回当前目录的父目录的字符串名:'..'
import os
print(os.curdir,type(os.curdir)) # 结果:. <class 'str'>
print(os.pardir,type(os.pardir)) # 结果:.. <class 'str'>
4、os.getcwd():返回当前工作目录
5、os.chdir(path):改变当前工作目录到指定的路径
参数:
path -- 要切换到的新路径。
import os path = "F:\\" # 查看当前工作目录 print ("当前工作目录为: %s" % os.getcwd()) # 修改当前工作目录 res = os.chdir( path ) # 查看修改后的工作目录 print ("修改后工作目录为: %s" % os.getcwd())
6、os.access(path, mode):检测是否有访问权限,返回True或False
参数:
①path -- 要用来检测是否有访问权限的路径。
②mode -- mode为以下其中之一或者更多:
os.F_OK: 作为access()的mode参数,检测path是否存在。
os.R_OK: 包含在access()的mode参数中 , 检测path是否可读。
os.W_OK:包含在access()的mode参数中 , 检测path是否可写。
os.X_OK:包含在access()的mode参数中 ,检测path是否可执行。
import os # 假定 /tmp/foo.txt 文件存在,并有读写权限 ret = os.access("/tmp/foo.txt", os.F_OK) print ("F_OK - 返回值 %s"% ret) ret = os.access("/tmp/foo.txt", os.R_OK) print ("R_OK - 返回值 %s"% ret) ret = os.access("/tmp/foo.txt", os.W_OK) print ("W_OK - 返回值 %s"% ret) ret = os.access("/tmp/foo.txt", os.X_OK) print ("X_OK - 返回值 %s"% ret)
7、os.listdir(path):返回指定的文件夹包含的文件或文件夹的名字的列表,包括隐藏文件。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中
说明:只支持在 Unix, Windows 下使用
import os path = r".\xml解析" dirs = os.listdir( path ) print(dirs)
8、os.makedirs(path, mode=0o777):递归创建目录
import os path = "/tmp/home/monthly/daily" os.makedirs(path, 0o777) print ("路径被创建")
9、os.mkdir(path[, mode]):创建目录。默认的模式为 0o777 (八进制)
import os path = "./hourly" os.mkdir( path, 0o755 )
10、os.rmdir(path):删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError
11、os.remove(path):删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError
import os # 列出目录 print ("目录为: %s" %os.listdir(os.getcwd())) # 移除 os.remove("aa.txt") # 移除后列出目录 print ("移除后 : %s" %os.listdir(os.getcwd()))
12、os.removedirs(path):递归删除目录。若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
import os os.removedirs(r"F:\Python\test\1") # 1为空目录,test为只包含目录1的目录,执行结果:删除了test目录
13、os.rename(old, new):重命名文件或目录,如果new是一个存在的目录, 将抛出OSError
import os os.rename(r".\test",r".\test1")
14、os.renames(old, new):递归重命名目录或文件
import os os.renames(r".\test\1\2",r".\test1\a\b")
15、os.sep:输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
16、os.linesep:输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
17、os.walk():通过在目录树中游走生成包含当前目录的目录名字符串、文件夹列表、文件列表的生成器
print(os.walk(r".\xml解析")) for content in os.walk(r".\xml解析"): print(content)
18、os.cpu_count():查看CPU核数
19、os.path模块
os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。 os.path.dirname(path) #返回文件路径 os.path.exists(path) #路径存在则返回True,路径损坏返回False os.path.getatime(path) #返回最后一次进入此path的时间。 os.path.getmtime(path) #返回在此path下最后一次修改的时间。 os.path.getctime(path) #返回path的创建时间 os.path.getsize(path) #返回文件大小,如果文件不存在就返回错误 os.path.isabs(path) #判断是否为绝对路径 os.path.isfile(path) #判断路径是否为文件 os.path.isdir(path) #判断路径是否为目录 os.path.islink(path) #判断路径是否为链接 os.path.ismount(path) #判断路径是否为挂载点() os.path.join(path1[, path2[, ...]]) #把目录和文件名合成一个路径 os.path.normcase(path) #转换path的大小写和斜杠 os.path.realpath(path) #返回path的真实路径 os.path.relpath(path[, start]) #从start开始计算相对路径 os.path.samefile(path1, path2) #判断目录或文件是否相同 os.path.sameopenfile(fp1, fp2) #判断fp1和fp2是否指向同一文件 os.path.split(path) #把路径分割成dirname和basename,返回一个元组 os.path.splitext(path) #分割路径,返回路径名和文件扩展名的元组
import os path = r".\xml解析" path1 = r".\shelve模块" path_list = [r"F:\xml解析",r"F:\shelve模块"] print(os.path.abspath(path)) #返回绝对路径 print(os.path.basename(path)) #返回文件名 print(os.path.commonprefix(path_list)) #返回li(多个路径)中,所有path共有的最长的路径。 print(os.path.dirname(path)) #返回文件路径 print(os.path.exists(path)) #路径存在则返回True,路径损坏返回False print(os.path.getatime(path)) #返回最后一次进入此path的时间。 print(os.path.getmtime(path)) #返回在此path下最后一次修改的时间。 print(os.path.getctime(path)) #返回path的创建时间 print(os.path.getsize(path)) #返回文件大小,如果文件不存在就返回错误 print(os.path.isabs(path)) #判断是否为绝对路径 print(os.path.isfile(path)) #判断路径是否为文件 print(os.path.isdir(path)) #判断路径是否为目录 print(os.path.islink(path)) #判断路径是否为链接 print(os.path.ismount(path)) #判断路径是否为挂载点() print(os.path.join(path,'a')) #把目录和文件名合成一个路径 print(os.path.normcase(r"./Xml解析")) #转换path的大小写和斜杠 print(os.path.realpath(path)) #返回path的真实路径 # print(os.path.relpath(path[, start])) #从start开始计算相对路径 os.path.samefile(path, path1) #判断目录或文件是否相同 # os.path.sameopenfile(fp1, fp2) #判断文件对象fp1和fp2是否指向同一文件 print(os.path.split(path)) #把路径分割成dirname和basename,返回一个元组 print(os.path.splitext(r"F:\Python\a.xml")) #分割路径,返回路径名和文件扩展名的元组:('F:\\Python\\a', '.xml')