我是一個初學者python程序員使用它進行簡單的管理任務。嘗試語句不捕獲複製錯誤python
我寫了一個小日誌移動代碼(因爲我有一個系統生成大量的日誌文件,從服務器移動到存儲)。
我在遠程路徑上的文件上獲得權限錯誤,但在嘗試複製時拒絕了權限,因此已將此程序包裝在try:語句中,以嘗試並通過錯誤但腳本仍在結束... line 32是shutil.copy2(位置,copylocation)。
基本路徑是本地目錄,日誌目錄是UNC路徑(附加了文件夾集)。早先在腳本中跨文件系統鏡像文件夾。 (所以應該永遠存在)。
其他嘗試的如os.remove工作OK。
如果任何人都可以指向我的大方向將不勝感激。
Traceback (most recent call last):
File "C:\Program Files (x86)\Log Mover\log_mover.py", line 32,
shutil.copy2 (location,copylocation)
File "C:\Python27\lib\shutil.py", line 127, in copy2
copyfile(src, dst)
File "C:\Python27\lib\shutil.py", line 82, in copyfile
with open(dst, 'wb') as fdst:
IOError: [Errno 13] Permission denied: '\\\\XXXX\\d$\\logs\\
logs/XXX\\XXX - 2012-07-03 21-49.XXXX'
☀could not delete:C:/logs/XX\XXX\XXX 2012-07-04 08-00-42.txt
Traceback (most recent call last):
for root, dirs, files in os.walk(basepath):
for filenames in files:
location = os.path.join(root, filenames)
try:
datemod = time.strftime("%Y%m%d%H",time.localtime(os.path.getmtime(location)))
except OSError:
print "count not get mod time:"+location
if datemod != currtime:
drive,path = os.path.splitdrive(location)
copylocation = str(logdir)+str(path)
try:
shutil.copy2 (location,copylocation)
except OSError:
print "could not copy"
pass
if os.path.getsize(location) == os.path.getsize(copylocation):
try:
os.remove(location)
print "Deleted"+location
except OSError:
print "could not delete:"+location
pass
else:
print "sizes dont match"
感謝
肯尼
你必須趕上一個'IOError',而不是'OSError' – damned