首页 > 解决方案 > 检查 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

结果是该文件不存在。虽然它存在。我不明白为什么会这样。我想这是对参数解析器的一些干扰,但我无法猜测原因。

标签: python-3.x

解决方案


如果你传入一个带有空格的参数,你需要用引号 ( ") 将它括起来,这样它就知道你没有传入多个参数。此外,作为一般经验法则,不要在文件名中包含空格。


推荐阅读