我编写了这段代码,它在“target_dir”命令的第11行失败,语法无效我有一个vm ubuntu,我只是复制并粘贴了代码,它在那里工作但不在我的win7中,我不确定为什么。我正在阅读另一个类似代码的问题,但它有一个不同的错误,并注意到有人说这些命令中的一些已经过时,所以我只是想知道是否是这样,我会放弃这本书然后转到另一个我只是拿到。
提前感谢您的帮助,
# Filename: backup_ver1.py
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = ['"D:\\Warlock"', 'C:\\Druid'
# 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
target_dir = r'C:\Backup' # Remember to change this to what you will be using
# 3. The files are backed up into zip file.
# 4. The name of the zip archive is the current date and time
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 5. We use the zip commnad to put the files in a zip archive
zip_commnad = "7z a -tzip {0} {1}" .format(target, ' '.join(source))
print(zip_command)
#Run the backup
if os.system(zip_command) == 0:
print('Successful backup', target)
else:
print('Backup FAILED')
答案 0 :(得分:7)
source = ['"D:\\Warlock"', 'C:\\Druid'
缺少结束括号。应该是source = ['"D:\\Warlock"', 'C:\\Druid']
。
修改:此外,
zip_commnad = "7z a -tzip {0} {1}" .format(target, ' '.join(source))
print(zip_command)
应该是
zip_command = "7z a -tzip {0} {1}" .format(target, ' '.join(source))
print(zip_command)
即,拼写命令并正确修复缩进。另外,虽然像你这样定义备份路径并不是一个错误,但我同意abaumg的观点,即使用原始字符串会更加清晰。
答案 1 :(得分:1)
在Python中,无效的语法错误通常意味着存在语法错误,在报告的行号之上有一行或多行。
使用括号高亮显示的编辑器,以便您可以沿着线移动光标,查看缺失的位置或括号,括号,括号等的位置。
此外,您可能希望查看os.path模块并从文件名中删除C:和\。可以在Linux和Windows之间使Python代码可移植。驱动名称可以来自选项(sys.argv)或配置文件(ConfigParser),并且\可以替换为单个/然后您可以使用os.path.normcase()来为当前操作系统规范化它。