Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Argparse:设置默认文本文件_Python_Argparse - Fatal编程技术网

Python Argparse:设置默认文本文件

Python Argparse:设置默认文本文件,python,argparse,Python,Argparse,我希望将一个文本文件rand.letter.txt设置为这个argparse段中的默认word文件,以便在程序中使用和读取。我假设它应该位于下面第4-5行。我该怎么做 正如你们将看到的,我已经用矩阵大小做了。但是,当涉及到一个具有str特征的文件时,我感到很挣扎 def main(): print("WELCOME TO THE MEMORY PUZZLE!") parser = argparse.ArgumentParser(description=&qu

我希望将一个文本文件
rand.letter.txt
设置为这个argparse段中的默认word文件,以便在程序中使用和读取。我假设它应该位于下面第4-5行。我该怎么做

正如你们将看到的,我已经用矩阵大小做了。但是,当涉及到一个具有str特征的文件时,我感到很挣扎

def main():
    print("WELCOME TO THE MEMORY PUZZLE!")

    parser = argparse.ArgumentParser(description="Memory game") 
    parser.add_argument("words_file", metavar="FILE", nargs=1,
                        help="Words file")

    parser.add_argument(
        "--matrix-size",
        metavar="SIZE",
        dest="matrix_size",
        help="Matrix size",
        default=6,
        type=int,
        )

    args = parser.parse_args()

    game = Game(args.words_file[0], args.matrix_size)
    game.play()

非常感谢您的帮助和意见

如果需要默认的positional参数,则需要指定as
。这将使用命令行中的一个参数(如果可用),否则将使用默认参数

parser.add\u参数(
“words_file”,nargs=“?”,default=“rand.letter.txt”,help=“words file”
)
另外,当您初始化
游戏时,您正在从
words\u文件
变量中切掉第一个字符。您需要将其更改为:

game=game(args.words\u文件,args.matrix\u大小)

请注意,
[0]
已消失。

如果需要默认的positional参数,则需要指定as
。这将使用命令行中的一个参数(如果可用),否则将使用默认参数

parser.add\u参数(
“words_file”,nargs=“?”,default=“rand.letter.txt”,help=“words file”
)
另外,当您初始化
游戏时,您正在从
words\u文件
变量中切掉第一个字符。您需要将其更改为:

game=game(args.words\u文件,args.matrix\u大小)

请注意,
[0]
已消失。

如果要设置位置的默认值,必须指定
nargs=“?”
nargs=1
在您的示例中似乎是多余的,因为它只生成一个项目列表。因此,您的线路应如下所示:

parser.add_argument("words_file", metavar="FILE", nargs="?",
                        default="rand.letter.txt", help="Words file")

如果要设置位置的默认值,必须指定
nargs=“?”
nargs=1
在您的示例中似乎是多余的,因为它只生成一个项目列表。因此,您的线路应如下所示:

parser.add_argument("words_file", metavar="FILE", nargs="?",
                        default="rand.letter.txt", help="Words file")

您是否尝试添加了
default=“rand.letter.txt”
?是的,不幸的是,它不起作用,如果我启动程序时没有包含一个文件,则返回缺少一个文件(我希望不必这样做),“错误:需要以下参数:file”是否尝试添加
default=“rand.letter.txt”
?是,不幸的是,它不起作用,如果我在启动程序时没有包含一个文件,则返回它缺少一个文件(我希望不必这样做),“错误:需要以下参数:file”谢谢,问题是我收到以下消息:“FileNotFoundError:[Errno 2]没有这样的文件或目录:'r'”当我不输入任何参数时(因为我只需要默认值):(venv)n147-p63:Project rebeckae$python3 game.py我已经更新了我的响应。谢谢,问题是当我不输入任何参数时(因为我只需要默认值):(venv)n147-p63:Project rebeckae$python3游戏。pyI已更新我的回复。