Python 将国家代码作为命令行参数输入传递

Python 将国家代码作为命令行参数输入传递,python,pycharm,command-line-arguments,Python,Pycharm,Command Line Arguments,我有一个程序,通过原始输入()获取一个国家的代码,然后根据它发送电子邮件 我的代码是: import pandas as pd import pymysql import sys data=pd.read_CVS("filename") country=raw_input("country name : ") print("country name is :",sys.argv[1]) for index in data['emailid']: mail= index.sp

我有一个程序,通过
原始输入()
获取一个国家的代码,然后根据它发送电子邮件

我的代码是:

import pandas as pd

import pymysql

import sys

data=pd.read_CVS("filename")

country=raw_input("country name : ")

print("country name is :",sys.argv[1])

for index in data['emailid']:

    mail= index.split('@')[1]
    if(country == 'US'):
        if (mail=='yahoo.com'):
            print index
    elif(country == 'UK'):
        if(mail=='yahoo.com' or mail=='yahoo.co.uk'):
            print index
我想将其更改为将国家代码作为命令行参数输入发送

例如:

python programname.py 'UK'

以及相关的电子邮件ID作为输出。

raw\u input
从标准输入读取,而
sys.argv
是命令行参数列表。因此,如果您想使用命令行传递国家代码,只需删除包含
原始输入的行,并将
国家设置为
sys.argv[1]

您应该尝试使用模块


现在我想在命令行参数中给出命令,比如你的实际问题是什么?失败的原因是什么?如何失败?我想在执行程序时发送国家名称的输入,就像如果我想让所有邮件重新发送到“UK”,我必须在执行时提供输入…python程序_name.py“UK”名称错误:名称“country”未定义parser=argparse.ArgumentParser(description='Example with non-optional arguments')parser.add_argument('country')args=parser.parse_args()print args.country用于数据中的索引['emailid']:mail=index.split('@')[1]if(country='US'):if(mail='yahoo.com'):print index elif(country='UK):if(mail=='yahoo.com'或mail=='yahoo.co.uk'):print indextankx Akshat我没有得到nameerror,但我得到的是所有记录,而与country的条件无关。parser=argparse.ArgumentParser(description='Example with non-optional arguments')parser.add_args('country')args=parser.parse_args()country=args.country fo=open(“outfile1.txt”、“wb+”),用于profileid\u superss['emailid']:mail=index.split('@')[1]if(country='US'):if(mail='rocketmail.com'):fo.write(index+'\n'):elif(mail='yahoo.com'或mail='yahoo.co.UK'):fo write(index+'\n'))很难在注释中阅读代码,您能否更新问题中的最新代码。如果我删除行rawinput,则会出现名称错误。很抱歉,我没有仔细阅读接下来的几行。您实际上只打印了命令行参数,但没有将其分配给以后使用的
country
变量。
import argparse

parser = argparse.ArgumentParser(description='Example with non-optional arguments')    
parser.add_argument('country')  
args = parser.parse_args()
country = args.country