python-3.x - 检查 Python 中是否存在带有 pathlib 的文件并返回假阴性
问题描述
我正在通过 ArgumentParser 传递文件路径并检查文件是否有效以运行它。但是,对于文件,pathlib 在检查是否存在时返回。该文件名为: OC POC G4 W49 DB3 KIDS WE UK NOR Translations_Spanish and Portugal Claims Missing.xlsx 并且位于路径中,假设它位于:
c:\OC POC G4 W49 DB3 KIDS WE UK NOR Translations_Spanish and Portuguese Claims Missing.xlsx
文件的位置可以在任何地方,也可以尝试使用绝对路径和相对路径,pathlib 的文件不存在。
我有这个参数的代码:
from argparse import ArgumentParser
from pathlib import Path
args_parser = ArgumentParser()
args_parser.add_argument('path',
help='Path to the Excel files to prepare', nargs='+')
args = args_parser.parse_args()
if args.path:
for file in args.path:
pth = Path(file).resolve()
print(pth, pth.exists()) # return False for this file
结果是该文件不存在。虽然它存在。我不明白为什么会这样。我想这是对参数解析器的一些干扰,但我无法猜测原因。
解决方案
如果你传入一个带有空格的参数,你需要用引号 ( "
) 将它括起来,这样它就知道你没有传入多个参数。此外,作为一般经验法则,不要在文件名中包含空格。
推荐阅读
- javascript - 从 ejs 转换为 html
- node.js - 使用 ejs 表达的节点:“ReferenceError:未定义植物”
- java - 如果条件变量不是作为队列实现的,为什么条件变量也称为条件队列?
- sql - SQL LIKE运算符用于字符串间距的多种组合?
- python - 如何让 matplotlib 忘记删除的绘图元素?
- java - 由于外部库中的 org.junit.Test 类依赖关系,无法使用 LeakCanary
- javascript - 从 API OpenWeatherMap JavaScript 获取数据
- node.js - 我可以直接在反应应用程序上运行节点功能吗
- javascript - 有没有办法将我用 js 附加到 DOM 的任何内容存储在本地存储中,以便在页面重新加载后检索它?
- c++ - 跟踪参考修改以更新原始类