如何使用 argparse 轻松存储文件和文件夹位置,然后使用这些值
How do I easily store a file and folder location with argparse and then use those values
我有 Python module/script(取决于您阅读的内容)我想打开一个文件并将内容提取到一个目录中,使用 file=sys.argv[1]
和 [= 可以正常工作12=] 例如,但我想使用 argparse 以方便最终用户使用。
if len(sys.argv) < 2:
print "Usage: '%s -h'" % sys.argv[0]
sys.exit(0)
def untar():
#Both these values to come from argparse
tarloc = tfile
dest = folder
#tarloc = sys.argv[1]
#dest = sys.argv[2]
filecount = 0
tar = tarfile.open(tarloc)
....etc
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Module to untar TAR files')
parser.add_argument('-f', "--file", help='File to open', action="store_true", dest="tfile")
parser.add_argument('-d', "--dest", help='Destination to extract to', action="store_true", dest="folder")
args = parser.parse_args()
print args
有人可以帮助我展示如何使用 argparse 来存储 args 以及如何使用它们。
argparse
也应该在 if __name__ ==
部分之上还是之下?
你的文件和目标参数都是强制性的;如果用户没有指定它们,您的脚本将无事可做。
所以不要在这里使用 -
或 --
选项,您需要 positional arguments:
parser = argparse.ArgumentParser(description='Module to untar TAR files')
parser.add_argument('file', help='File to open')
parser.add_argument('folder', help='Destination to extract to')
args = parser.parse_args()
请注意,我删除了 action
参数; store_true
用于 布尔标志选项 ;例如如果用户在命令行上指定标志,则某些东西被打开,不接受任何参数。
接下来,将 file
和 folder
值传递给您的函数:
def untar(tarloc, folder):
filecount = 0
tar = tarfile.open(tarloc)
# ....etc
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Module to untar TAR files')
parser.add_argument('file', help='File to open')
parser.add_argument('folder', help='Destination to extract to')
args = parser.parse_args()
untar(args.file, args.folder)
您可能需要按照 Python 文档中包含的 argparse
tutorial 了解更多详细信息。
我有 Python module/script(取决于您阅读的内容)我想打开一个文件并将内容提取到一个目录中,使用 file=sys.argv[1]
和 [= 可以正常工作12=] 例如,但我想使用 argparse 以方便最终用户使用。
if len(sys.argv) < 2:
print "Usage: '%s -h'" % sys.argv[0]
sys.exit(0)
def untar():
#Both these values to come from argparse
tarloc = tfile
dest = folder
#tarloc = sys.argv[1]
#dest = sys.argv[2]
filecount = 0
tar = tarfile.open(tarloc)
....etc
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Module to untar TAR files')
parser.add_argument('-f', "--file", help='File to open', action="store_true", dest="tfile")
parser.add_argument('-d', "--dest", help='Destination to extract to', action="store_true", dest="folder")
args = parser.parse_args()
print args
有人可以帮助我展示如何使用 argparse 来存储 args 以及如何使用它们。
argparse
也应该在 if __name__ ==
部分之上还是之下?
你的文件和目标参数都是强制性的;如果用户没有指定它们,您的脚本将无事可做。
所以不要在这里使用 -
或 --
选项,您需要 positional arguments:
parser = argparse.ArgumentParser(description='Module to untar TAR files')
parser.add_argument('file', help='File to open')
parser.add_argument('folder', help='Destination to extract to')
args = parser.parse_args()
请注意,我删除了 action
参数; store_true
用于 布尔标志选项 ;例如如果用户在命令行上指定标志,则某些东西被打开,不接受任何参数。
接下来,将 file
和 folder
值传递给您的函数:
def untar(tarloc, folder):
filecount = 0
tar = tarfile.open(tarloc)
# ....etc
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Module to untar TAR files')
parser.add_argument('file', help='File to open')
parser.add_argument('folder', help='Destination to extract to')
args = parser.parse_args()
untar(args.file, args.folder)
您可能需要按照 Python 文档中包含的 argparse
tutorial 了解更多详细信息。