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已更新我的回复。