技术开发 频道

Python中的文件和目录操作

  四、文件的复制与重命名

  当我们要复制文件的时候,可以使用shutil模块:

import shutil
shutil.copy(myfile, tmpfile)
#拷贝最后访问时间和最后修改时间:
shutil.copy2(myfile, tmpfile)
# 拷贝一个目录树:
shutil.copytree(root_of_tree, destination_dir, True)

  Copytree的第三个参数规定对符号链接的处理,其中True表示保留符号链接;而False则意味着使用文件的物理副本替代符号链接。

  Python语言能够很好地支持路径名的跨平台组成:Os.path.join能使用正确的分界符(在UNIX和Mac OS X操作系统中使用/,在 Windows 上使用\)来联接目录和文件名,变量os.curdir和os.pardir分别表示当前工作目录及其父目录。 像下面的UNIX操作系统命令

cp ../../f1.c .

  可以使用Python语言提供一个跨平台的实现:

shutil.copy(os.path.join(os.pardir,os.pardir,’f1.c’), os.curdir)

  Os模块中的rename函数通常被用于重命名一个文件:

os.rename(myfile, ’tmp.1’) # 将myfile重命名为’tmp.1’

  这个函数也可用来在相同的文件系统之内移动文件。这里,我们将myfile移动到目录d下面:

os.rename(myfile, os.path.join(d, myfile))

  在跨文件系统移动文件的时候,可以先使用shutil.copy2来复制文件,然后再删除原来的副本即可,如下:

  shutil.copy2(myfile, os.path.join(d, myfile))

  os.remove(myfile)

  后面这种移动文件的方法是最安全的。

0
相关文章