2013-05-14 10 views
-1

У меня есть следующий сценарий, который работал отлично на XP, так как у меня есть новый компьютер на Windows 7 Professional код перестал работатьСкрипт не работает с окнами 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 версии Aswell? – timss

+0

Используется для 2.7.2 сейчас 2.7.4 – geekcomputers

+0

Установить права доступа на 'c: \ logs \'? – jon

ответ

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

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

+0

zip ping_dms_155.2013-05-14.log.zip ping_dms_155.log, параметр ping_dms_155.2013-05-14.log.zip кажется отличным от файлов1, files1 - ping_dms_155.log.2013 -05-14.zip. Возможно, имя файла не разрешено с помощью "." с последующим "-". Попробуйте присвоить имя файлу, как files1 = files.split (".") [0] + "-" + strftime ("% Y-% m-% d") + ". Zip" – rudasi

+0

к сожалению его же – geekcomputers

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

Смежные вопросы