2017-08-29 130 views
0

我试图将文件从当前目录复制到当前目录中新创建的文件夹。文件夹名称是脚本使用时间模块运行的确切日期和时间。我正在尝试使用shutil模块,因为这就是每个人似乎都认为将文件从一个地方复制到另一个地方的最佳方式,但我一直在收到权限错误。我粘贴了下面的代码和错误。有什么建议么?提前致谢。使用Python复制文件

import os 
import time 
from shutil import copyfile 

oldir = os.getcwd() 
print(oldir) 
timestr = time.strftime("%Y%m%d-%H%M%S") 
print('timestr: {}'.format(timestr)) 
newdir = os.path.join(oldir + "\\" + timestr) 
print(newdir) 


for filename in os.listdir(os.getcwd()): 
    if filename.startswith("green"): 
     print (filename) 
     copyfile(oldir, newdir) 

错误:

Traceback (most recent call last): 
    File "\\directory\directory\Testing1.py", line 16, in <module> 
    copyfile(oldir, newdir) 
    File "C:\Python36-32\lib\shutil.py", line 120, in copyfile 
    with open(src, 'rb') as fsrc: 
PermissionError: [Errno 13] Permission denied: '\\\\directory\\directory' 
+2

这是因为不是复制文件,而是尝试将当前**目录**本身复制到其子目录中。 –

回答

1

您需要先创建目录,然后当你的副本,请使用整个路径都启动文件,然后结束文件

import os 
import time 
from shutil import copyfile 

oldir = os.getcwd() 
print(oldir) 
timestr = time.strftime("%Y%m%d-%H%M%S") 
print('timestr: {}'.format(timestr)) 
newdir = os.path.join(oldir + "\\" + timestr) 
print(newdir) 

if not os.path.exists(newdir): 
    os.makedirs(newdir) 

for filename in os.listdir(os.getcwd()): 
    if filename.startswith("green"): 
     print (filename) 
     copyfile(oldir+"\\"+filename, newdir + "\\" + filename) 
+0

正如所指出的,如果不检查目录是否存在,或者您是先创建目录,则无法复制@Matt – deaspo