官方文档:
一、Path.rename(target) 学习:
创建测试文件和文件夹
1、传入新的文件名(字符串),文件路径不变
结果:文件被重命名,位置不变
2、传入旧的文件名(字符串),文件路径改变
结果:文件名不变,文件位置变了,被移动到新的路径。
3、传入新的文件名(字符串),文件路径改变
结果:文件被重命名,同时位置改变,被移动到新的路径下。重命名且移动文件。
4、传入新的文件名(Path类),文件路径不变
结果:文件被重命名,位置不变
5、传入新的文件名(Path类),文件路径改变
结果:文件被重命名,同时位置改变,被移动到新的路径下。重命名且移动文件。
6、传入旧的文件名(Path类),文件路径改变
结果:文件名不变,文件位置变了,被移动到新的路径。
当新路径(无论字符串还是Path类)下文件存在时,会报错:
当新路径(无论字符串还是Path类)不存在时,会报错:
总结:
1、当传入的target,路径不变,文件名不一样时,实现了文件的重命名
2、当传入的target,路径改变时,实现了文件的移动。文件名称为新路径中的名称
3、当传入的target,已经存在时,则不会移动或者重命名,报错。
4、当传入的target,路径不存在时,不会移动文件,报错。
5、与传入的target类型无关,如论是字符串还是Path类,效果都一样。
二、Path.replace(target) 学习:
1、传入新的文件名(字符串/Path类),文件路径不变
结果:文件被重命名,位置不变
2、传入旧的文件名(字符串/Path类),文件路径改变
结果:文件名不变,文件位置变了,被移动到新的路径。
3、传入新的文件名(字符串/Path类),文件路径改变
结果:文件被重命名,同时位置改变,被移动到新的路径下。重命名且移动文件。
4、当新路径(无论字符串还是Path类)下文件存在时:
结果:文件被重命名,同时位置改变,被移动到新的路径下。原来文件被替换。
5、当新路径(无论字符串还是Path类)不存在时,会报错:
总结:
1、当传入的target,路径不变,文件名不一样时,实现了文件的重命名
2、当传入的target,路径改变时,实现了文件的移动。文件名称为新路径中的名称
3、当传入的target,已经存在时,则会移动或者重命名文件,原来文件被替换。
4、当传入的target,路径不存在时,不会移动文件,报错。
5、与传入的target类型无关,如论是字符串还是Path类,效果都一样。
Path.rename() 和 Path.replace() 唯一的不同点在于,传入的target路径文件已经存在时,rename()方法会报错,replace()方法会无条件替换。
三、Path.exists
()学习:
判断文件/文件夹是否存在,如果path是符号链接,则返回链接指向的文件是否存在
>>> Path('.').exists()
True
>>> Path('setup.py').exists()
True
>>> Path('/etc').exists()
True
>>> Path('nonexistentfile').exists()
False
四、Path.is_dir() 学习:
如果返回True,则路径指向的是一个文件夹,或者符号链接指向的是文件夹。
如果返回False,则路径指向的不是文件夹,或者路径指向不存在,或者是一个损坏的符号链接,或者没有权限等等。
五、Path.is_file() 学习:
如果返回True,则路径指向的是一个常规文件,或者符号链接指向的是常规文件。
如果返回False,则路径指向的不是常规文件,或者路径指向不存在,或者是一个损坏的符号链接,或者没有权限等等。
六、Path.iterdir() 学习:
遍历文件夹
七、Path.mkdir(mode=0o777, parents=False, exist_ok=False) 学习:
创建文件夹。exist_ok=True,则文件存在时不报错,为False,则文件存在时报错。parents=True,则创建多级文件夹,为False,则只能创建一级文件夹。
八、Path.rmdir() 学习:
删除文件夹,文件夹必须为空!
九、Path.unlink() 学习:
删除文件或者删除符号链接,路径指向文件夹则调用Path.rmdir()。
python3.8之后添加missing_ok参数。如果missing_ok=True,则文件不存在时不报错;如果为Fasle,则文件不存在时报错。