2013-05-14 112 views
-1

我有工作正常在XP,因爲我已經在Windows 7 Professional的新PC的代碼已停止工作腳本不工作7

import os   
import shutil 
from time import strftime 

logsdir="c:\logs" 
zipdir="c:\logs\puttylogs\zipped_logs" 
zip_program="zip.exe" 

for files in os.listdir(logsdir): 
    if files.endswith(".log"): 
    files1=files+"."+strftime("%Y-%m-%d")+".zip" 
    os.chdir(logsdir) 
    os.system(zip_program + " " + files1 +" "+ files) 
    shutil.move(files1, zipdir) 
    os.remove(files) 

我得到的錯誤是 U中的以下腳本:>蟒蛇logs.py 拉鍊警告:名稱不匹配:ping_dms_155.log

zip error: Nothing to do! (ping_dms_155.log.2013-05-14.zip) 
Traceback (most recent call last): 
    File "logs.py", line 24, in <module> 
    shutil.move(files1, zipdir) 
    File "c:\python27\lib\shutil.py", line 301, in move 
    copy2(src, real_dst) 
    File "c:\python27\lib\shutil.py", line 130, in copy2 
    copyfile(src, dst) 
    File "c:\python27\lib\shutil.py", line 82, in copyfile 
    with open(src, 'rb') as fsrc: 
IOError: [Errno 2] No such file or directory: 'ping_dms_155.log.2013-05-14.zip' 

我想不出爲什麼它會停止工作,在此先感謝

+0

你改變Python版本藏漢工作? – timss 2013-05-14 15:26:49

+0

以前在2.7.4上是2.7.2 – geekcomputers 2013-05-14 15:33:49

+0

在'c:\ logs \'上設置訪問權限? – jon 2013-05-14 15:35:18

回答

0

我有這種通過改變使用os.system到子過程,使代碼現在看起來像

import os 
import shutil 
from time import strftime 
import subprocess 

logsdir="c:\logs" 
zipdir="c:\logs\puttylogs\zipped_logs" 
zip_program="zip.exe" 

for files in os.listdir(logsdir): 
    if files.endswith(".log"): 
     files1=files+"."+strftime("%Y%m%d")+".zip" 
     os.chdir(logsdir) 
     subprocess.call([zip_program,files1, files]) 
     shutil.move(files1, zipdir) 
     os.remove(files) 
+0

感謝大家的幫助 – geekcomputers 2013-05-15 13:53:58

0

看來你確實有zip.exe您的Windows從錯誤中7的機器,但它可能不兼容版本與Windows 7

入住logsdir看到,如果你修改文件(ping_dms_155.log.2013-05-14.zip)已經存在。如果所有這些都是真的,我會建議使用python模塊zipfile

+1

它可以通過命令行C:\ logs> zip ping_dms_155.2013-05-14.log.zip ping_dms_155.log 添加:ping_dms_155.log(160字節安全性)(縮減89%) – geekcomputers 2013-05-14 16:00:12

+0

zip ping_dms_155.2013-05-14.log.zip ping_dms_155.log,參數ping_dms_155.2013-05-14.log.zip與files1不同,files1是ping_dms_155.log.2013 -05-14.zip。可能是因爲「。」不允許文件名。其次是 」-」。嘗試命名文件像files1 = files.split(「。」)[0] +「 - 」+ strftime(「%Y-%m-%d」)+「。zip」 – rudasi 2013-05-14 16:41:45

+0

可悲的是它可以打印相同的 – geekcomputers 2013-05-14 16:57:19

0

您的路徑字符串未正確轉義。

logsdir="c:\logs" 
zipdir="c:\logs\puttylogs\zipped_logs" 

應該是:

logsdir=r"c:\logs" 
zipdir=r"c:\logs\puttylogs\zipped_logs" 

目錄C:OGS不存在。因爲您已更改爲日誌目錄,因此手動運行它。它在XP上運行,因爲......嗯,你沒有在XP上運行這個確切的腳本,因爲它不會在那裏工作。

+0

添加,不會改變它,它仍然錯誤相同。我現在正在運行兩臺機器,XP正在運行 – geekcomputers 2013-05-14 16:24:43