Python 如果用户文件夹在目录中有空间,该怎么办?

Python 如果用户文件夹在目录中有空间,该怎么办?,python,directory,operating-system,yolo,Python,Directory,Operating System,Yolo,我目前正在尝试训练一个Yolov3模型(wiz young)。注释文件的格式为: index directory width height .... 我的绝对目录是:C:\User\My Name\YOLOv3\u TensorFlow\misc\JPEGImages\object.jpg 它逐行读取,并根据位置确定值。由于我的用户名中有空格,它将name\YOLOv3\u TensorFlow\misc\JPEGImages\object.jpg混用为宽度,并返回我ValueError:in

我目前正在尝试训练一个Yolov3模型(wiz young)。注释文件的格式为:

index directory width height ....
我的绝对目录是:
C:\User\My Name\YOLOv3\u TensorFlow\misc\JPEGImages\object.jpg

它逐行读取,并根据位置确定值。由于我的用户名中有空格,它将
name\YOLOv3\u TensorFlow\misc\JPEGImages\object.jpg混用为宽度,并返回我
ValueError:int()的无效文本,基数为10:'name\\YOLOv3\u TensorFlow\\misc\\JPEGImages\\Van(52).jpg'

我是否错误地将目录设置为\(使用windows),因为我相信原始代码是针对Linux的。 此外,是否有任何方法可以防止空间发生干扰

我相信守则的这一部分是相关的:

if 'str' not in str(type(line)):
        line = line.decode()
    s = line.strip().split(' ')
    assert len(s) > 8, 
    line_idx = int(s[0])
    pic_path = s[1]
    img_width = int(s[2])
    img_height = int(s[3])
    s = s[4:]

您可以尝试以下操作:

  • 在注释文件中用引号括起目录路径。这是Windows中处理带有空格的路径的标准方法

  • 这听起来可能有些极端,但作为一个长期使用Mac的用户,我现在的工作中有一个Windows机箱,我建议使用Linux的Windows子系统。然后在那里而不是在Windows环境中执行所有tensorflow工作。避免在目录名中使用空格(在linux中,这是不受欢迎的,即使它在Windows中是典型的)

  • 如果您想留在Windows环境中,并且由于某种原因无法将路径用引号括起来,则只需将数据移动到用户文件夹外的一个目录中,该目录中没有空格


  • 我建议下面用字符串引号将目录括起来,并将r符号添加到字符串中。 下面的例子来说明

    from PIL import Image
    
    image = Image.open("C:\Users\ali\Pictures\spaced folder\object 1.png")
    
    给出以下unicode错误:
    文件“”,第1行
    SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置2-3中的字节:截断\uxxxxx

    但是,在字符串引号前面添加一个r就可以了

    image = Image.open(r"C:\Users\ali\Pictures\spaced folder\object 1.png")
    

    什么是“它”?刚刚编辑过。谢谢你的澄清,非常感谢!1个不适合我,但3个却很有魅力!