【发布时间】:2020-11-17 23:08:14
【问题描述】:
我在 argparse 参数中使用nargs='+',并且如果只有一个参数而不是多个参数,则需要不同的处理。我使用.csv 文件作为输入;如果只有一个,我可以将其用作其余代码的输入,但是如果有多个,我首先需要将它们合并为一个 .csv
我当前的代码是:
parser.add_argument('-csv', nargs='+', help=".csv file(s)")
而且我需要能够说
if only one .csv file:
then
else (if multiple .csv files):
merge the .csvs
【问题讨论】:
-
只是为了澄清问题,我不需要答案中给出的
then或merge the .csvs,它们只是占位符。谢谢 -
您正在将参数收集到一个列表中,对吗?你不能只检查列表的长度吗?
-
当你说合并 - 你的意思是把所有的文件都当作一个连续的流?例如,CSV 文件是否都有标题/没有?似乎取决于您想要做什么,然后您可以依次循环遍历 csv 文件名并执行您需要的任何操作。
-
Special cases aren't special enough- 您的合并算法究竟是如何工作的,它可以处理两个或多个输入,但不能处理一个? -
在回答 Jon 时,我没有考虑过使用连续流,所以如果我能做到这一点,我必须研究一下。作为对 Karl 的回答,合并算法需要至少有两个输入,因为第一个文件保存了标题,随后它使用
__next__()跳过标题
标签: python python-3.x csv argparse