我在尝试执行代码时遇到了这个错误“SyntaxError:EOL whilescanning string literal”

2024-04-25 13:11:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我的老师让我们编写一个程序,压缩键盘提供给它的目录元素,并将其存储在“vardir”变量(例如:vardir=“c:\windows”)中,获取目录文件并在windows桌面上生成压缩文件,将其设置为文件名“resp”加上一周中某一天的名称,再加上系统当前年份的周数

   from datetime import date
from datetime import datetime
import zipfile
import os
import shutil

weekday = "%A"
weeknumber = "%W"
yearnumber = "%j"
today = date.today()
day = today.strftime(weekday)
week = today.strftime(weeknumber)
year = today.strftime(yearnumber)

name= "" + day+week+year

vardir = "C:\Users\wuise\Desktop\Misceláneo\Roncones"

place = 'C:\Users\wuise\Desktop\'+name+".zip"

comprimir=zipfile.ZipFile(place,'w')

with zipfile.ZipFile(vardir+name.upper()+".zip", "w") as zipObj:
    for folderName, subfolders, filenames in os.walk(vardir):
        for filename in filenames:
            filePath = os.path.join(folderName, filename)
            zipObj.write(filePath)
print("Compresión completa")

File "<ipython-input-4-42fc3b06823e>", line 19
    place = 'C:\Users\wuise\Desktop\'+name+".zip"
                                                 ^
SyntaxError: EOL while scanning string literal

Tags: nameimport目录todaydatetimeoswindowsplace
1条回答
网友
1楼 · 发布于 2024-04-25 13:11:41

问题是,在设置place变量时,没有转义\字符。因此,字符串末尾的\导致结束'被转义,因此不关闭字符串

对此,您可以做的一件事是对\字符进行如下转义:

place = 'C:\\Users\\wuise\\Desktop\\'+name+".zip"
# look at the code highlighting: this is not green like the string

这将防止\字符转义'字符

在你的问题中,评论应该是绿色的:

place = 'C:\Users\wuise\Desktop\'+name+".zip"
# this is green because it is part of the above string

相关问题 更多 >