在 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()
确保不再有控制字符。
我无法在我的 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()
确保不再有控制字符。