file文件测试数据的读写与操作
【相对路径与绝对路径】
【?】如果我们要打开/操作一个文件,是用绝对路径还是相对路径更好些?
#相对路径:以当前文件为基准进行一级级目录指向被引用的资源文件
# 绝对路径:文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件(从根目录一层层读写)
# 场景:当要打开py文件所处的文件时只要使用相对路径就行了,而要使用其他文件夹的则需使用绝对路径
# 通常用’/‘来表示相对路径,’\‘来表示绝对路径
# 以下是常用的表示当前目录和当前目录的父级目录的标识符
../ 表示当前文件所在的目录的上一级目录
./ 表示当前文件所在的目录(可以省略)
/ 表示当前站点的根目录(域名映射的硬盘目录)
总结:
通过总结可以发现,当你要导入的文件在和你的当前文件在同一个目录时,你直接导入这个文件名就好了。
当你要导入的文件或者目录不和你的当前文件同目录时,你需要跳到这个你要导入文件的父级目录,然后一级一级的用点号连接走过的目录或者文件,然后就可以了 至于要怎么跳到这个这个父级目录。比较通用的就是,将父级目录加入系统路径,然后用点号一级一级的寻找,直到到达你要导入的模块。
文件夹的相关操作
# 新建一个目录/新建一个文件夹
说明:文件夹的相关操作需要python的os模块支持
1、路径的获取
获取当前所在工作目录:os.getcwd() # 具体到最后一级目录
获取当前文件所在绝对路径:os.path.realpath(__file__) # 具体到模块名(文件名),等同于 os.path.abspath(__file__)
2、创建目录
创建文件夹:os.mkdir("test")
跨级创建文件夹:os.mkdir("test/test01") #用‘/’代表路径的不同层级,必须确保test文件夹(上面的层级)是存在的,要注意避免成为转义字符
【备注】# 转义字符:/r、/t等 --可百度,路径中若想避免则可以变为‘//’或者路径首位加‘r’ (2)# ‘反斜杠’ 和 ‘正斜杠’ 无区别,单双斜杠也没有区别
3、删除目录
删除文件夹:os.rmdir("test")
层级删除文件夹:os.rmdir("test/test01") # 已存在子目录的情况下,需要层级删除不能直接删除test
4、拓展
跳转到其他目录:os.chdir("aaa")
获取目录下文件夹和文件名称:os.listdir()(得到的数据类型是列表) 如:print(os.listdir(os.getcwd())) #罗列当前所有的目录和文件
5、判断是文件还是目录
文件:os.path.isfile()
目录:os.path.isdir()
# 判断是否是文件 isfile
print(os.path.isfile(__file__))
print(os.path.isfile(os.getcwd())) #getcwd 确定的是最后一级目录,返回值是布尔值
# 判断是否是目录 isdir
print(os.path.isdir(os.getcwd())) #返回值是布尔值 dir directory
print(os.path.isdir(__file__))
6、判断文件是否存在
os.path.exists(path) ----- 检验给出的路径是否存在,返回bool值
【?】如何拼接路径
方法1: # 路径拼接,用“+”
方法2: #方法2 join(加了反斜杠证明进入下一级)
【拓展】给定一个路径,请打印所有路径,直至路径下不再有路径为止(相当于是打印所有的路径)
#思路:递归函数,写成一个函数