Python 从目录中读取文件

Python 从目录中读取文件,python,directory,Python,Directory,我试图读取目录中的文件。/resources/input\u file.utf8。 但是,当我使用命令从终端编译以下代码时: python namefile.py input 出现以下错误: [Errno 2] No such file or directory: 'input' 这是我的代码: from argparse import ArgumentParser def parse_args(): parser = ArgumentParser() parser.a

我试图读取目录中的文件。/resources/input\u file.utf8。 但是,当我使用命令从终端编译以下代码时:

 python namefile.py input
出现以下错误:

[Errno 2] No such file or directory: 'input'
这是我的代码:

from argparse import ArgumentParser


def parse_args():
    parser = ArgumentParser()
    parser.add_argument("input_path", help="./resources/input_file.utf8")

    return parser.parse_args()


def foo(input_path):

    file_input = open(input_path, "r", encoding='utf-8-sig') 
    for line in file_input:
    [...]


if __name__ == '__main__':
    args = parse_args()
    predict(args.input_path)
我必须遵守的规范之一是,不要将硬路径直接放在foo函数中,而只放在parser.add_argument()函数中


如何修复它?

如果您正在运行命令
python namefile.py input
,请确保:

1) 文件-您的输入文件和python脚本都在同一个文件夹中

2) 位置-终端中的工作目录是包含文件的目录(使用pwd进行检查)

3) 文件名-您的文件名正好是
input
,而不是
input.txt
input.utf8


如果文件位于示例中提供的路径中,则需要使用该路径调用脚本

示例:


python namefile.py./resources/input\u file.utf8”

您是否尝试过
python namefile.py resources/input\u file.utf8
?路径将相对于您的终端所在的目录。请确保从那里提供有效路径。听起来您的数据库中没有文件“输入”directory@DroidX86它起作用了!这是吃午餐的唯一方法吗?我的意思是我总是在编译文件之前指定目录?ArgumentParser中的帮助尚未指定目录?Thanks@Pierfrancesco你必须告诉程序在哪里找到你试图使用的文件。可以使用相对路径或绝对路径执行此操作。绝对路径从根开始
/
。相对路径从当前目录或已知位置开始(如
~
-您的主目录)