gpt4 book ai didi

python - 代码适用于一个函数,但不适用于两个函数

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:42 25 4
gpt4 key购买 nike

我的问题是,如果我使用两个函数,则此代码不接受两个输入参数。

我也尝试从第二个函数中插入和删除单击命令和单击选项,但我总是发现主应用程序要求附加参数(需要给出 2 )或者代码未执行第二个功能。 (“添加新列”)

我在这里做错了什么?

import pandas as pd

@click.command()
@click.option('--infile', prompt='Your input TSV filename', help='Write your tab separated value filename.')
@click.option('--out', prompt='Your output CSV filename', help='Write your new comma separated value filename.')
def convert_tsv_to_csv(infile, out):
"""Converting a Tab Separated Value into a Comma Separated Value for given files in cli arguments"""
df = pd.read_csv(infile, delimiter='\t')
df.to_csv(out, sep=',')

# @click.command()
# @click.option('--out', prompt='Your output CSV filename', help='Write your new comma separated value filename.')
# def add_new_column(out):
# """Adding a new column named "price_edited" """
# df = pd.read_csv(out, delimiter=',')
# # this line creates a new cloned column from price column, which is a Pandas series.
# # we then add the series to the dataframe, which holds our parsed CSV file
# df['price_edited'] = df['price']
# # save the dataframe to CSV
# df.to_csv(out, sep=',')


if __name__ == '__main__':
convert_tsv_to_csv()
#add_new_column()```

第二次尝试:

import click
import pandas as pd


@click.command()
@click.option('--infile', prompt='Your input TSV filename', help='Write your tab separated value filename.')
@click.option('--out', prompt='Your output CSV filename', help='Write your new comma separated value filename.')
def convert_tsv_to_csv(infile, out):
"""Converting a Tab Separated Value into a Comma Separated Value for given files in cli arguments"""
df = pd.read_csv(infile, delimiter='\t')
df.to_csv(out, sep=',')


def add_new_column():
"""Adding a new column named "price_edited" """
df = pd.read_csv(out, delimiter=',')
# this line creates a new cloned column from price column, which is a Pandas series.
# we then add the series to the dataframe, which holds our parsed CSV file
df['price_edited'] = df['price']
# save the dataframe to CSV
df.to_csv(out, sep=',')


if __name__ == '__main__':
convert_tsv_to_csv()
add_new_column()

最佳答案

您的困惑在于对 Click 的作用的误解。 Click 用于解析命令行,然后运行命令行中指定的函数。

在此处显示的示例中,从命令行角度来看,您只需要一个函数。也就是说,程序每次运行时都会做同样的事情。所以你只需要一键点击功能。

但是我有两件事要做!

将工作分成两个函数当然是有意义的,但这两个函数需要从单个单击函数中调用,如下所示:

import pandas as pd
import click


@click.command()
@click.option('--infile', prompt='Your input TSV filename',
help='Write your tab separated value filename.')
@click.option('--out', prompt='Your output CSV filename',
help='Write your new comma separated value filename.')
def cli(infile, outfile):
convert_tsv_to_csv(infile, outfile)
add_new_column(outfile)


def convert_tsv_to_csv(infile, out):
"""Converting a Tab Separated Value into a Comma Separated Value
for given files in cli arguments"""
df = pd.read_csv(infile, delimiter='\t')
df.to_csv(out, sep=',')


def add_new_column(out):
"""Adding a new column named "price_edited" """
df = pd.read_csv(out, delimiter=',')
# this line creates a new cloned column from price column, which
# is a Pandas series. We then add the series to the dataframe,
# which holds our parsed CSV file
df['price_edited'] = df['price']

# save the dataframe to CSV
df.to_csv(out, sep=',')

if __name__ == '__main__':
cli()

关于python - 代码适用于一个函数,但不适用于两个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55085299/

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