Python3 OS模块中的文件/目录方法说明十二
一. 简介
前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。
本文继续来学习 OS 模块中文件、目录的操作方法:rename() 方法与 renames()方法。
二. Python3 OS模块中的文件/目录方法
1. rename() 方法
rename() 方法用于重命名文件或目录。它还可以用于移动文件或目录到一个新的路径。该方法在不同的操作系统上可能会有不同的行为,特别是在处理跨文件系统的操作时。
rename()方法语法格式如下:
os.rename(src, dst)
示例如下:
#!/usr/bin/env python3
import os,sys
#假设已经存在 file文件夹
dir = "./test_dir"
print("当前目录列表: %s" % os.listdir(os.getcwd()))
#更改文件夹的名字
os.rename(dir, "test_dirs")
print("重命名后目录列表: %s" % os.listdir(os.getcwd()))
运行后会将重命名文件夹的名字:
示例2 如下:
#!/usr/bin/env python3
import os,sys
#假设文件已经存在(./test_dirs/test.txt)
src_dir = "./test_dirs/test.txt"
dst_dir = "./nwdir/file.txt"
fd = os.open(src_dir, os.O_RDWR|os.O_CREAT)
os.write(fd , "you are wonderful, I think!".encode())
os.lseek(fd, 0, 0)
bytes_data = os.read(fd, 100)
print(bytes_data)
print("当前目录列表: %s" % os.listdir(os.getcwd()))
#移动文件的位置
os.rename(src_dir, dst_dir)
print("重命名后目录列表: %s" % os.listdir(os.getcwd()))
运行后文件就移动了位置:
2. renames()方法
renames()方法 用于递归地重命名文件或目录。
renames()方法 不仅能够重命名目标文件或目录,还会处理其父目录的创建和删除操作。
如果目标路径中的某些中间目录不存在,os.renames() 会自动创建这些目录;
如果在移动过程中某些源目录变为空,则会删除这些空目录。
renames()方法语法格式如下:
os.renames(old, new)
示例1:重命名文件并创建目标目录
#!/usr/bin/env python3
import os,sys
src_file = "old.txt"
#假设目录 test_dir不存在
dst_dir = "./test_dir/new.txt"
print("当前目录列表: %s\n" % os.listdir(os.getcwd()))
#使用 os.renames 重命名文件并创建目标目录
os.renames(src_file, dst_dir)
print("重命名后目录列表: %s" % os.listdir(os.getcwd()))
运行后结果如下:
可以看出,当中间目录不存在时,会创建中间 目录 test_dir。
示例 2:
移动目录并删除空的源目录:假设你有一个目录 src_dir,你想将其移动到 ./dst_dir/src_dir ,并且 dst_dir 目录不存在:
#!/usr/bin/env python3
import os,sys
#如果目录 src_dir为空目录,则会被删除
src_file = "src_dir"
#假设目录 dst_dir不存在
dst_dir = "./dst_dir/src_dir"
print("当前目录列表: %s\n" % os.listdir(os.getcwd()))
#使用 os.renames 重命名文件并创建目标目录
os.renames(src_file, dst_dir)
print("重命名后目录列表: %s" % os.listdir(os.getcwd()))
运行后结果如下:
可以看出,src_dir目录为空目录,则在运行后,src_dir目录已经被删除。移动到了 ./dst_dir/src_dir目录下: