欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录几个比较常用的python复制文件的方法

程序员文章站 2024-02-19 12:14:46
...

python复制文件的方式有很多个,针对不同的目的有不同的操作,可以对文件权限,描述信息进行复制或者不复制操作,这里只记录了几个我日常会用到的

from shutil import copyfile,copy,copyfileobj
import os
help(copy)
# Help on function copy in module shutil:

# copy(src, dst, *, follow_symlinks=True)
#     Copy data and mode bits ("cp src dst"). Return the file's destination.
    
#     The destination may be a directory.
    
#     If follow_symlinks is false, symlinks won't be followed. This
#     resembles GNU's "cp -P src dst".
    
#     If source and destination are the same file, a SameFileError will be
#     raised.
#该函数会同时拷贝数据以及数据的权限,如果目标为目录时将会以原文件名保存;如果已经存在和目标文件名相同的文件,则会报错

help(copyfile)
# Help on function copyfile in module shutil:

# copyfile(src, dst, *, follow_symlinks=True)
#     Copy data from src to dst.
    
#     If follow_symlinks is not set and src is a symbolic link, a new
#     symlink will be created instead of copying the file it points to.
#该函数智慧复制文件内容 而不会去复制权限及其他文件的描述信息,所以会比copy快一点
help(os.popen)
# Help on function popen in module os:

# popen(cmd, mode='r', buffering=-1)
#     # Supply os.popen()
#该命令可以调用系统命令去进行文件的复制操作,不过在复制时创建一个指向或来自该命令的管道。它返回一个连接到管道的打开的文件对象。您可以根据文件打开模式(即’r’(默认)或’w’)使用它进行读取或写入
#模式 –它可以是’r’(默认)或’w’。
#bufsize –如果其值为0,则不会发生缓冲。如果设置为1,则在访问文件时将进行行缓冲。如果您提供的值大于1,则缓冲将以指定的缓冲区大小进行。但是,对于负值,系统将采用默认缓冲区大小
os.popen('copy x x1')#windows
os.popen('cp x x2')#linux
help(os.system)
# Help on built-in function system in module nt:

# system(command)
#     Execute the command in a subshell.
os.popen('copy x x1')#windows
os.popen('cp x x2')#linux

相关标签: python