I didn't have Windows 7 right now, but that shouldn't happen with the
code you've given; when trimming code for posting, you should check that
the trimmed code still have the exact same problem.


Here is the hole code:


#!/usr/bin/env python
# little script to backup recursive a folder with 7zip


SOURCE_DIR = "C:/Users/yoicks/Desktop/source"
DEST_DIR = "C:/Users/yoicks/Desktop/dest"
BACKUP_NAME_PREFIX = "BACKUP"
BACKUP_NAME_DELIMITER = "_"
METHOD = '7zip'
PATH_TO_7ZIP = "C:/Program Files/7-Zip/7z.exe"
PASSWORD = "1234"

import os, time, shutil, sys, tarfile, subprocess, traceback

try:
    # win32
    from msvcrt import getch
except ImportError:
    # unix
    def getch():
        import sys, tty, termios
        fd = sys.stdin.fileno()
        old = termios.tcgetattr(fd)
        try:
            tty.setraw(fd)
            return sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old)

def press_any_key():
    print "Press any key to continue."
    getch()

def exit_with_string(exit_string):
    print exit_string
    press_any_key()
    sys.exit(exit_string)

def backup_directory_7zip(srcdir,archive_name):
    if os.path.exists(archive_name):
        exit_stop("backup path %s already exists!" % arcpath)
    try:
        # see 7zip help
arglist = [PATH_TO_7ZIP,"a", "-sfx", archive_name, "*", "-r", "-p",PASSWORD] print ("try running cmd:\n %s\nin directory\n %s" % (' '.join(arglist),srcdir)) # join because i don't want [ ] sp = subprocess.Popen(args=arglist, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=srcdir)

#output, error = subprocess.Popen(args=arglist, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=srcdir).communicate()

    except:
        print "Error while running 7zip subprocess.\n"
        print "Traceback:\n%s"%traceback.format_exc()
        return False

    output, error = sp.communicate()
#something i tried output = sp.stdout.read() #somtehing i tried error = sp.stderr.read()
    if output:
        print output

    if error:
        print error

        return False
    return archive_name


# build backup name
print "start backup with python-script...\n"

timestr = time.strftime("%Y%m%d_%H%M%S",time.localtime())

if METHOD not in ["7zip"]:
    exit_stop("METHOD not '7zip'")

if not os.path.exists(SOURCE_DIR):
exit_stop("SOURCE_DIR: %s doesn't exists" % os.path.abspath(SOURCE_DIR))

if not os.path.exists(DEST_DIR):
    exit_stop("DEST_DIR: %s doesn't exists" % os.path.abspath(DEST_DIR))

else:
    print("write backup from %s to %s \n using the %s method...\n" %
          (os.path.abspath(SOURCE_DIR), os.path.abspath(DEST_DIR), METHOD))
    if METHOD == "7zip":
        try:
            if not os.path.exists(PATH_TO_7ZIP):
                exit_stop("Path to 7ZIP %s doesn't exist." % PATH_TO_7ZIP)
        except NameError:
            exit_stop("variable PATH_TO_7ZIP not defined")
return_value = backup_directory_7zip(srcdir=os.path.abspath(SOURCE_DIR),

archive_name=os.path.abspath(os.path.join(
DEST_DIR, BACKUP_NAME_PREFIX + BACKUP_NAME_DELIMITER + timestr + ".exe")))

if return_value:
    print("Backup successfully written.")
else:
    print("FAILURE during the backup")

press_any_key()















--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to