在 Python 使用 pathlib ( \u2069 ) 获取文件夹错误

In Python Getting the folder wrong with pathlib ( \u2069 )

我无法在我的 mac 中使用以下代码,我也不知道为什么。

import os
from pathlib import Path   
list_file_name     = 'listoffiles.txt'
list_of_files_path = Path('Users⁩/jose⁩/CODE⁩/OPS')
list_file_with_path= os.path.join (list_of_files_path,list_file_name )
print(list_of_files_path)

结果: 用户/jose/CODE/OPS/listoffiles.txt 好像还可以

但是当我继续将文本文件读入列表时:

lineList = [line.rstrip('\n') for line in open(list_file_with_path)]

我得到: FileNotFoundError:[Errno 2] 没有这样的文件或目录:'Users\u2069/jose\u2069/CODE\u2069/OPS/listoffiles.txt'

我不明白我必须如何调用路径才能使其正确。

有帮助吗? 我做错了什么?

注意事项: 在互联网上研究这个问题,我发现有几页告诉我 "old" 使用 os 库中的路径的方式,而 "new and good one" 是来自 python 3.4 的路径库。是这样吗。我应该忘记 os 吗?

你上面的示例代码中的字符串在字符串常量中直接输入了Unicode字符。我cut-n-pasted你的代码并看到结果:

from pathlib import Path   
list_of_files_path = Path('Users⁩/jose⁩/CODE⁩/OPS')
print(repr(list_of_files_path))

输出:

WindowsPath('Users\u2069/jose\u2069/CODE\u2069/OPS')

我的编辑器甚至显示了它们:

U+2069 是一个不可见的双向文本控制字符POP DIRECTIONAL ISOLATE。也许您的编辑器在输入时处于双向文本模式?要修复,请重新键入字符串并通过 repr() 确保不再有控制字符。