WinError 123文件名,目录名称或卷标签语法不正确\ u202a符号?

问题描述

这是我的代码

data_directory = Path('‪G:\Pneumonia\chest_xray\chest_xray')

train_directory = data_directory / 'train'
val_directory = data_directory / 'val'
test_directory = data_directory / 'test'

normal_cases_directory = train_directory / 'norMAL'
pneumonia_cases_directory = train_directory / 'PNEUMONIA'

normal_cases = normal_cases_directory.glob('*.jpeg')
pneumonia_cases = pneumonia_cases_directory.glob('*.jpeg')

train_data = []

for images in normal_cases:
    train_data.append((images,0))

for images in pneumonia_cases:
    train_data.append((images,1))
    
train_data = pd.DataFrame(train_data,columns=['image','label'],index=None)

这是输出:OSError:[WinError 123]文件名,目录名或卷标语法不正确:'\ u202aG:\ Pneumonia \ chest_xray \ chest_xray \ train \ norMAL'。

我在一开始注意到\ u202a符号,但我不知道如何解决它。

解决方法

使用原始字符串传递路径:

Path(r'G:\Pneumonia\chest_xray\chest_xray')
,

U+202A是影响the text's direction的不可见字符。您可能不小心将它从某处复制/粘贴到了程序源中。

(因为文本已经从左到右,所以它不会改变的方向。如果路径名是用例如阿拉伯语或希伯来语的文字书写的,则字符是有意义的,否则从右到左运行,并且您希望此拉丁字符串从左到右显示。也许您是从类似的地方复制/粘贴它的?)

您看不到它,但是只需在其上退格即可将其删除。将光标置于G:上并向左移动;您应该注意,从G的左侧移至单引号的左侧需要两次按。同样,您可以移回G的左侧,然后键入Backspace删除那里的不可见字符。