网站开发与设计的实训场地,wordpress漫画网站,莆田网站建设外贸,linux ctlscript.sh wordpress目录#xff09; 1. 认识路径相对路径绝对路径 2. 拼接路径3.检测目录4.创建和删除目录5.遍历目录 1. 认识路径
目录也称文件夹#xff0c;用于分层保护文件#xff0c;通过目录可以分门别类地存放文件#xff0c;也可以通过目录快速地找到想要的文件#xff0c;在Python… 目录 1. 认识路径相对路径绝对路径 2. 拼接路径3.检测目录4.创建和删除目录5.遍历目录 1. 认识路径
目录也称文件夹用于分层保护文件通过目录可以分门别类地存放文件也可以通过目录快速地找到想要的文件在Python中并没有提供直接操作目录的函数或者对象而是需要使用内置的os和os.path模块实现。
用于定位一个文件或者目录的字符串被称为一个路径在程序开发的时候通常会涉及两种路径一种是相对路径另一种是绝对路径。
相对路径
当前工作目录是指当前文件所在的目录。可以通过os模块提供的getcwd()函数获取当前工作目录。
import os
print(os.getcwd()) # 输出当前工作目录相对路径就是依赖当前的工作目录如果在当前工作目录下有一个名称为message.txt的文件那么在打开这个文件时就可以直接写上文件名这时采用的就是相对路径。 在路径中注意下面3个特殊符号的语义 /表示根目录在Windows系统下表示某个盘的根目录如’E:‘。 .表示当前目录也可以写成’./‘。在当前目录中可以直接写文件名或者下级目录。 ..表示上级目录也可以写成’…/。 分别使用’/‘、’./‘和’…/打开文本文件然后执行写入操作。
f open(test1.txt,w)
f.write(当前目录)
f.close()
f open(/test2.txt,w)
f.write(根目录)
f.close()
f open(./test3.txt,w)
f.write(当前目录1)
f.close()
f open(../test4.txt,w)
f.write(上级目录)
f.close()绝对路径
绝对路径是指在使用文件时指定文件的实际路径他不依赖于当前工作目录可以通过os.path模块提供的abspath()函数获取一个文件的绝对路径。 os.path.abspath(path)
path 为要获取绝对路径的相对路径可以是文件也可以是目录。import os
path1 os.path.abspath(.) # 获取当前所处的文件夹绝对路径
print(path1) # /Users/guanfawang/Python_Language/file_operations
path2 os.path.abspath(..) # 表示当前文件夹的上一级文件夹的绝对路径
print(path2) # /Users/guanfawang/Python_Language‘‘字符具有转义功能可以使用’\‘替换也可以使用’/‘代替’’。更简单的方法是在字符串前面加R或r前缀。 2. 拼接路径
当把多个路径拼接为一个路径时不建议直接使用字符串拼接。因为在Linux、Unix系统下路径分隔符是斜杆’/‘在Windows系统下路径分隔符是反斜杠’‘也可以兼容’/‘在Mac OS系统中路径分隔符是冒号’/。
一般使用os.path子模块提供的join()函数把多个路径拼接为一个路径。
除第一个参数外如果参数的首字母不是斜杆字符则会被加上分隔符斜杆的前缀。如果所有参数没有一个是绝对路径那么拼接的路径将是一个相对路径。如果有一个参数是绝对路径则在它之前的所有参数均被舍弃拼接的路径是一个绝对路径。如果有多个参数是绝对路径则以参数列表中最后一个出现的绝对路径参数为基础在它之前的所有参数均被舍弃拼接的路径是一个绝对路径。如果最后一个参数为空字符串则生成的路径将以’/斜杆作为路径的后缀表示拼接的路径是一个目录。 os.path.join(path1[,path,...])import os
path1 home
path2 develop
path3 code
path4
path5 os.path.join(path1,path2,path3)
print(path5) # home/develop/code
path6 os.path.join(path1,path2,path4)
print(path6) # home/develop/3.检测目录
判断给定的目录是否存在可以使用os.path模块的exists()函数实现。 os.path.exists(path)import os
b os.path.exists(test) # 判断当前目录下是否存在test文件夹
print(b) # Falseexists()函数不区分路径是目录还是文件如果要区分指定路径是目录、文件、链接或者为绝对路径可以使用下面的专用函数。 os.path.isabs(path)检测指定路径是否为绝对路径。 os.path.isdir(path)检测指定路径是否为目录。 os.path.isfile(path)检测指定路径是否为文件。 os.path.isline(path)检测指定路径是否为链接。 # 快速统计指定文件目录下所有文件类型的个数
import os
def count_filetype(file_path):file_dict{}file_listos.listdir(file_path)for file in file_list:pathname os.path.join(file_path,file)if os.path.isfile(pathname):(file_name,file_extention) os.path.splitext(file)if file_dict.get(file_extention) None:count 0else:count file_dict.get(file_extention)count 1file_dict.update({file_extention:count})for key,count in file_dict.items():print(\%s\文件夹下类型为\%s\的文件共有\%s\个%(file_path,key,count))
count_filetype(r/Users/guanfawang/Python_Language) # 打印信息/Users/guanfawang/Python_Language文件夹下类型为.md的文件共有1个4.创建和删除目录
os模块提供了两个创建目录的函数一个是创建一级目录单个目录另一个用于创建多级目录多个目录。
os.mkdir(path,mode0777)创建单个目录。os.rmdir(path)删除单个目录。os.makedirs(path,mode0777)创建多级目录。os.removerdirs(path)删除多级目录。
import os
path1 test # 定义单级目录
if not os.path.exists(path1):os.mkdir(path1) # 创建一级目录
if os.path.exists(path1):os.rmdir(path1) # 删除一级目录
path2 test/sub_test # 定义多级目录
if not os.path.exists(path2):os.makedirs(path2) # 创建多级目录
if os.path.exists(path2):os.removedirs(path2) # 删除多级目录rmdir()和removedirs()函数只能删除空目录。如果要删除非空目录可以使用shutil模块的rmtree(path)函数实现。 import shutil
shutil.rmtree(test)5.遍历目录
遍历就是对指目录下的全部目录包括子目录及文件运行一遍。
os模块提供了walk()函数可用于目录的遍历 os.walk(top,topdownTrue,οnerrοrNone,followlinesFalse)import os
def visitDir(path): for root,dirs,files in os.walk(path): # 遍历目录for filepath in files: # 遍历文件print(os.path.join(root,filepath)) # 输出文件的完整路径
visitDir(/Users/guanfawang/Python_Language/file_operations)