gpt4 book ai didi

python - 如何在Python中向argparse添加写入文件选项?

转载 作者:行者123 更新时间:2023-12-01 04:04:37 25 4
gpt4 key购买 nike

我想创建一个非常简单的脚本,在终端中接收两个不同的路径(输入目录和输出单个文件)。所以我尝试了这个:

if __name__ == "__main__":

p = argparse.ArgumentParser(NAME)


p.add_argument("DIR", default=None,
action="store", help="Inpunt corpus files")


p.add_argument("-o", "--output",
help="Directs the output to a name of your choice")

opts = p.parse_args()
test = tuple(get_all(opts.DIR))
with open('opts.output','w') as out:
csv_out=opts.output.csv.writer(out, delimiter='|')

............
...more lines of code...
................

特别是,我在这行代码上遇到了麻烦:

with open('opts.output','w') as out:

我不知道如何指定“.csv”格式的输出单个文件,当我在终端中测试上述脚本时没有任何反应:

user@MacBook-User-2:~/Projects $ python script_v1.py /Users/user/Downloads/directory -o /Users/user/Desktop/

知道如何解决这个问题吗?提前谢谢大家。

最佳答案

这不是 argparse 问题;这是关于正确调用 csv.writer 的问题。

查看此 csv 示例(来自 csv 文档页面):

import csv
with open('eggs.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

如果您将 'eggs.csv' 替换为 opts.output 中的字符串,那么应该可以工作。请注意文件是如何打开的 - 使用“wb”。

我认为 FileType 在这里没有帮助。当然,它会打开文件,如果无法打开,则会给出一条很好的 argparse 消息。但它能正确打开文件吗?并且该打开的文件不能在 with 上下文中使用。

当您调用此脚本时,请指定 csv 文件名,而不仅仅是目录。

-o /Users/user/Desktop/aname.csv

获取类似于 csv 示例的内容,并在脚本中硬编码测试文件名。一旦成功,您就可以担心从命令行获取名称了。

关于python - 如何在Python中向argparse添加写入文件选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35850058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com