我正在尝试使用我找到的shutil脚本,但运行它会触发:
SyntaxError: unterminated string literal (detected at line 4)
这可能与包含原始 Windows 路径的脚本有关。如何修复脚本?
import shutil
import os
source = r"C:\Users\[username]\Downloads\"
dest1 = r" C:\Users\[username]\Desktop\Reports\14"
dest2 = r" C:\Users\[username]\Desktop\Reports\52"
dest3 = r" C:\Users\[username]\Desktop\Reports\59"
files = os.listdir(source)
for f in files:
if (f.startswith("Log 14")):
shutil.move(f, dest1)
elif (f.startswith("Log 54")):
shutil.move(f, dest2)
你有智能报价而不是普通报价。缩进也不正确。
这是固定代码:
import shutil
import os
source = "C:\\Users\\[username]\\Downloads\\"
dest1 = "C:\\Users\\[username]\\Desktop\\Reports\\14"
dest2 = "C:\\Users\\[username]\\Desktop\\Reports\\52"
dest3 = "C:\\Users\\[username]\\Desktop\\Reports\\59"
files = os.listdir(source)
for f in files:
if f.startswith("Log 14"):
shutil.move(source + f, dest1)
elif f.startswith("Log 54"):
shutil.move(source + f, dest2)
留意智能报价
”
。它们需要用双引号 "
.
import os
if os.name == 'nt': #check if windows
a='\\'
else:
a='/'
source = "C:"+a+"Users"+a+"[username]"+a+"Downloads"+a
智能引号再次来袭。
使用 BabelStone,可以确定代码中每个字符的 unicode 标识。
您习惯的开始/结束引号是
\U0022
。但是,dest2
上的 URL 末尾以不同的字符结尾,即 \U201D
。这是一个不同的角色。解决此问题的最简单方法是在 IDE 中重新输入引号。
输入:
"”
U+0022 : QUOTATION MARK {double quote}
U+201D : RIGHT DOUBLE QUOTATION MARK {double comma quotation mark}