①.、新建一个python脚本文件file.py(名字任意).
代码:
import os
import shutil
from shutil import Error
from shutil import copystat
src = "" #需要复制的文件目录
dst = "" #目标目录
def jiecptree(src, dst, symlinks=False, ignore=None): #声明函数 copyree( 要复制的目录,目标目录,复制符号连接内容到新目录,没有要忽略文件)
names = os.listdir(src) #获得要复制目录的文件名列表,赋给变量 names
if ignore is not None: #如果 ignore 不是None值
ignored_names = ignore(src, names) # src目录中要忽略文件的名字赋给 ignored_names
else: # 否则
ignored_names = set() #ignore_name 被 不重复空元素集 赋值
if os.path.isdir(dst):
pass
else:
os.makedirs(dst)
# print"dstfirst:"+dst
errors = [] #声明 errors列
for name in names: #将names里的元素循环复制给name
if name in ignored_names: #如果name在要求被忽略的列里出现
continue #继续for循环(跳回for,从新循环下个元素)
srcname = os.path.join(src, name) #将路径名(src)添加到文名(name)之前然后赋值给 srcname
dstname = os.path.join(dst, name) #将路径名(dst)添加到文名(name)之前然后赋值给 dstcname
# print "name:"+name
# print "src:"+src
# print "dst:"+dst
try: #尝试
if os.path.islink(srcname):
continue
elif os.path.isdir(srcname): #如果srcname路径是存在
jiecptree(srcname, dstname, symlinks, ignore)
elif os.path.isdir(dstname):
os.remove(dstname)
else: # 否则
# print "srcname:"+srcname
# print "dstname:"+dstname
# XXX What about devices, sockets etc.? #怎样装置
except (IOError, os.error), why: #除(IOError[与文件有关的异常],操作系统异常)外,返回原因
errors.append((srcname, dstname, str(why))) # 向errors列里添加,(要复制的目录,目标目录,错误原因)
# catch the Error from the recursive jiecptree so that we can 从递归复制中捕捉这个错误,以便于我们能继续复制其他文件
# continue with other files
except Error, err: #除错误外,返回错误:
errors.extend(err.args[0]) #扩展 errors 列,添加(err.args[0] 元素)
copystat(src, dst) # 从src复制权限位,上次访问时间,最后修改时间 到 dst,
except WindowsError: # 除 Windows错误 外:
# can't copy file access times on Windows 在Windows上无法复制文件访问时间
pass # 通过(不作任何处理)
except OSError, why: # 除 操作系统错误 外,返回原因:
errors.extend((src, dst, str(why))) #扩展 errors 列,添加(要复制的目录,目标目录,错误原因)
if errors: # 如果错误
raise Error(errors) # 提示错误
更多相关内容可参考资料
用Python把某一目录下的文件复制到指定目录中,代码如下:
①.、首先插入必要的库:
import?os?
import?os.path?
import?shutil?
import?time,?datetime
def?copyFiles(sourceDir,targetDir):?
if?sourceDir.find(".svn")?0:?
return?
for?file?in?os.listdir(sourceDir):?
sourceFile?=?os.path.join(sourceDir,file)?
targetFile?=?os.path.join(targetDir,file)?
if?os.path.isfile(sourceFile):?
if?not?os.path.exists(targetDir):?
os.makedirs(targetDir)?
if?not?os.path.exists(targetFile)?or(os.path.exists(targetFile)?and?(os.path.getsize(targetFile)?!=?os.path.getsize(sourceFile))):?
open(targetFile,"wb").write(open(sourceFile,"rb").read())?
if?os.path.isdir(sourceFile):?
First_Directory?=?False?
copyFiles(sourceFile,?targetFile)
if?__name__?=="__main__":?
print?"Start(S)?or?Quilt(Q)?\n"?
flag?=?True?
while?(flag):?
answer?=?raw_input()?
if?'Q'?==?answer:?
flag?=?False?
elif?'S'==?answer?:?
formatTime?=?getCurTime()?
targetFoldername?=?"Build?"?+?formatTime?+?"-01"?
Target_File_Path?+=?targetFoldername
copyFiles(Debug_File_Path,Target_File_Path)?
removeFileInFirstDir(Target_File_Path)?
coverFiles(Release_File_Path,Target_File_Path)?
moveFileto(Firebird_File_Path,Target_File_Path)?
moveFileto(AssistantGui_File_Path,Target_File_Path)?
writeVersionInfo(Target_File_Path+"\\ReadMe.txt")?
print?"all?sucess"?
else:?
print?"not?the?correct?command"
shutil.copyfile(src, dst):将名为src的文件的内容复制到名为dst的文件中 .
src, dst是文件名
shutil.copy(source, destination)
shutil.copy() 函数实现文件复制功能,将 source 文件复制到 destination 文件夹中,两个参数都是字符串格式.如果 destination 是一个文件名称,那么它会被用来当作复制后的文件名称,即等于 复制 + 重命名.
source一定是文件名,destination可以是文件名也可以是文件夹名
举例如下:
shutil 模块
file类中没有提供专门的文件复制函数,所以呢只能通过使用文件的读写函数来实现文件的复制.这里仅仅给出范例:
src = file("myfile.txt", "w+")
temp = ["hello world! \n"]
src.writelines(temp)
src.close()
src = file("myfile.txt", "r+")
des.writelines(src.read())
des.close()
shutil模块是另一个文件,目录的管理接口,提供了一些用于复制文件,目录的函数.copyfile()函数可以实现文件的拷贝,声明如下:
copyfile(src, des)
文件的剪切可以使用move()函数模拟,声明如下:
move(src,des)
功能:移动一个文件或者目录到指定的位置,并且可以根据参数des重命名移动后的文件.
以上就是土嘎嘎小编为大家整理的文件复制函数python相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!