gpt4 book ai didi

python - 如何管理反斜杠后带有数字的路径?

转载 作者:行者123 更新时间:2023-11-28 18:45:35 28 4
gpt4 key购买 nike

我在 Windows 7 上使用 Python 3.3。

问题来了

当我有一个以数字开头的文件名时,它会更改错误。

例如:

>>> 'E:\DOCUMENTS\1.jpg'
'E:\\DOCUMENTS\x01.jpg'

我知道我可以通过添加转义反斜杠来手动修复它。

>>> 'E:\DOCUMENTS\\1.jpg'
'E:\\DOCUMENTS\\1.jpg'

或者在字符串前加“r”。

>>> r'E:\DOCUMENTS\1.jpg'
'E:\\DOCUMENTS\\1.jpg'

但我不能手动完成,因为我不知道路径是什么。

有哪些可能的解决方案?

更新:正如@Blender 所建议的,我打算发布代码。重写的时候才发现原来是有错误,导致我得出了错误的结论。据我所知,上述情况,当有必要动态生成一个带有原始路径的字符串时,不会发生这种情况。只有手动写入路径时才会发生。

import os
from PIL import Image as PIL
from PIL import ImageTk

def searchforimages(dir):
imagelist=[]
for file in os.listdir(dir):
fileabspath=os.path.join(dir,file)
try:
# the problem was here originally, but now it is ok.
# since "fileabspath" get passes as a raw string,
# so there is no problem for PIL.open() to open it
PIL.open(fileabspath)
imagelist.append(fileabspath)
except:
continue
return imagelist

searchforimages('E:\photos')

#the problem only happens, when path is written manually
path='E:\photos\1.jpg'
PIL.open(path)

所以现在我只想确认,当有必要动态生成一个带有原始路径的字符串时,这个问题从来没有真正发生过,是吗?

最佳答案

\ 仅在字符串文字中使用时才重要。

>>> path = input() # `a\n\1` in the following line is typed by me (user).
a\n\1
>>> path
'a\\n\\1'

关于python - 如何管理反斜杠后带有数字的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716676/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com