繁体   English   中英

argparse,有没有办法传递 csv 文件的特定列

[英]argparse, is there a way to pass specific columns of a csv file

我有一个 csv 文件,我想使用 argparse 将它的特定列传递给脚本。 有可能这样做吗? 你能告诉我怎么做吗? 这是 test_file 的示例内容

id code address           city        zip 
1   232 123 main street   bahtina.    abc34
2   421 321 pagalkhana    frombehram. zila132

python3 main.py -f test_file.csv -a [address column of test_file.csv] -c [city column of test_file] -z "zip of test_file

如果我正确理解您的问题,您希望使用这些标志来选择文件的特定列。 如果是这种情况,您可能想看看csvkit 使用此工具,您可以执行以下操作:

csvcut -c address,city test_file.csv | csvlook

如果你真的想使用 argparse 和你自己的脚本,这里有一些示例代码:

# CLI
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-f')
parser.add_argument('-a', action='store_true')
parser.add_argument('-c', action='store_true')
args = parser.parse_args()

# File handling
import pandas as pd

# Select include columns from arguments
usecols = []
if args.a: usecols.append('address')
if args.c: usecols.append('city')

# Read the file in the f argument with the specified columns.
df = pd.read_csv(args.f, usecols=usecols)
# Do something with df here

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM