【发布时间】:2020-01-05 09:16:15
【问题描述】:
我在 python3 中创建了一个函数,它获取一些 txt 文件的路径并返回一个包含所有 txt 文件名称的列表。 这是函数:
import os
def files(path):
folder = os.fsencode(path)
filenames = []
for file in os.listdir(folder):
filename = os.fsdecode(file)
if filename.endswith( ('.txt') ):
filenames.append(filename)
filenames.sort()
return filenames
要运行此功能,我可以执行以下完美操作:
if __name__ == "__main__":
path = '/home/final_test'
file_list = files(path)
print(file_list)
但是the problem is from this part。我正在尝试使用argparse 制作一个脚本以在命令行中运行它。为此,我在脚本末尾添加了以下代码,但它不返回任何内容。你知道怎么解决吗?
def main():
ap = argparse.ArgumentParser(description="")
ap.add_argument('-P', '--path', required=True)
ap.add_argument('-o', '--outlist', required=True)
args = ap.parse_args()
file_list = files(path)
return file_list
if __name__ == "__main__":
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE, SIG_DFL)
try:
main()
except IOError as e:
if e.errno != 32:
raise
except KeyboardInterrupt as e:
pass
【问题讨论】:
标签: python-3.x command-line argparse