2016-09-26 13 views
-6
import os 

import time 

source = [r'C:\\Documents','/home/swaroop/byte', '/home/swaroop/bin'] 

target_dir =r'C:\\Documents','/mnt/e/backup/' 

today = target_dir + time.strftime("%Y%m%d") 

now = time.strftime('%H%M%S') 

os.path.exists(today) 

os.mkdir(today) 

print 'Successful created directory', today 

target = today + os.sep + now + '.zip' 

zip_command = "zip -qr '%s' %s" % (target, ' '.join(source)) 

if os.system(zip_command) == 0: 

print 'Successful backup to', target 

else: 
    print 'Backup FAILED' 

today = target_dir + time.strftime("%Y%m%d") 

Pleesを助けるタプルする( "STR" ではない)のタプルを連結することができはTypeError:のみライン6

はTypeError:だけのようにカンマをチェック

+4

'target_dir = r'C:\\ Documents '、'/mnt/e/backup/''はタプルになる文字列をカンマで区切っています –

+0

ディレクトリを 'C:\ Documents'と '/ mnt/e/backup'を実行しますか? –

+0

私は本からPythonを学んでいます。私はページに来たPythonスクリプトを書いています。バックアップスクリプト - 最初のバージョン、私はPythonシェルを書いたコードをすべてコピーしていますが、まだエラーが出ます。 – Shaggy

答えて

0

をタプルするタプル(ない "STR")を連結することができます

# 1. The files and directories to be backed up are 
# specified in a list. 
# Example on Windows: 
# source = ['"C:\\My Documents"', 'C:\\Code']  # Example on Mac OS X and Linux: 
source = ['/Users/swa/notes'] 
# Notice we had to use double quotes inside the string # for names with spaces in it. 

# 2. The backup must be stored in a 
# main backup directory 
# Example on Windows: 
# target_dir = 'E:\\Backup' 
# Example on Mac OS X and Linux: 
target_dir = '/Users/swa/backup' 
# Remember to change this to which folder you will be using 

あなたのコードがあります:

source = [r'C:\\Documents','/home/swaroop/byte', '/home/swaroop/bin'] 

target_dir =r'C:\\Documents','/mnt/e/backup/' 
@MosesKoledoyeは bookが持っている、と述べました

target_dir割り当てでは、カンマは割り当ての右側をタプルにします。 +、いないカンマを使用一緒に2つの文字列を結合するには:いっそ

target_dir =r'C:\\Documents' + '/mnt/e/backup/' 

を、単一の文字列を使用します。 /mntはLinuxのディレクトリ名であり、Windowsの名前ではありません。私はあなたが実際に必要と疑う:

target_dir = '/mnt/e/backup/' 

はまた、2つのバックスラッシュを意味し、生の文字列は、保持されます、Windowsのパスを作ってきました。これを行う次のいずれか

'C:\\Documents' 

またはこの:

r'C:\Documents' 

編集(しない限り、またはもちろん、あなたが実際に\\をしたいですか):

:私はちょうどあなたがまた、インデントの問題を抱えているに気づきました
if os.system(zip_command) == 0: 
print 'Successful backup to', target 
else: 

は、次のとおりです。

if os.system(zip_command) == 0: 
    print 'Successful backup to', target 
else: 

最後に、「私はすべてのコードをコピーします」と言い、失敗した場合は、自分の書籍が書籍と異なるところを確認してください。

+0

ありがとう – Shaggy

関連する問題