尝试熟悉python的标准库,并在我的Windows机器上进行一些操作。使用python 2.7我有以下小脚本,用于查看目录并在从文件名中删除数字后重命名其中的所有文件。我得到一个类型错误,上面写着“必须是没有NULL字节的编码字符串,而不是str”
它调出第5和第18行,在下面注明,其中我使用os.path.exists。
非常感谢任何帮助!
import os, re, string, glob
path = os.path.normpath('C:\Users\me\Photo Projects\Project Name\Project Photos\Modified\0-PyTest')
ln5:if os.path.exists(path):
print "path exists at " + path
for file in glob.glob(os.path.join(path, '*.jpg')):
new_path = os.path.join(os.path.dirname(file), re.sub('\d', '', os.path.basename(file)))
line18: if not os.path.exists(new_path):
os.rename(file, new_path)
答案 0 :(得分:10)
“......照片\改性\ 0-PyTest”
将\ 0作为空字符。您必须使用\
转义\\
,或者只是在字符串前放置r
以使其成为原始:
r'C:\Users\me\Photo Projects\Project Name\Project Photos\Modified\0-PyTest'
答案 1 :(得分:1)
原来是单反斜杠问题。 我认为os.path.normpath会根据操作系统的要求格式化路径。
答案 2 :(得分:0)
如果您要提供路径网址,只需在其前面添加r:
(r'E:\ IMAGES \ 1.png')