从命令行向python脚本传递参数

从命令行向python脚本传递参数,python,pandas,Python,Pandas,我对python和pandas非常陌生,我试图在命令行中使用参数执行python脚本,但我遇到了一个错误,这是我的脚本 #!/usr/bin/python import sys, pandas as pd df1 = pd.read_table(sys.argv[0], sep="\t", header=0) df2 = pd.read_table(sys.argv[1], sep="\t", header=0) df_merge = pd.merge(left=df1, righ

我对python和pandas非常陌生,我试图在命令行中使用参数执行python脚本,但我遇到了一个错误,这是我的脚本

 #!/usr/bin/python
 import sys, pandas as pd

 df1 = pd.read_table(sys.argv[0], sep="\t", header=0)
 df2 = pd.read_table(sys.argv[1], sep="\t", header=0)

 df_merge = pd.merge(left=df1, right=df2, left_on=sys.arg[2],  right_on=sys.arg[3])
 df_merge.to_csv(sys.arg[4], sep="\t")
我得到了以下错误:KeyError:u'no item named file.out',任何帮助都将不胜感激


我的命令行语句是:merge_files.py file1.out file2.out col1 col3 test将所有索引增加1,因为sys.argv[0]-是python脚本的名称

依此类推。argv[0]是脚本的名称,即merge_files.py。通过在脚本开头插入printsys.argv可以看到这一点。尝试将所有索引增加1。

第一个参数sys.argv[0]是脚本的名称

sys.argv: 传递给Python脚本的命令行参数列表。 argv[0]是脚本名称,它是否依赖于操作系统 这是否是完整路径名

请查看更多详细信息

#!/usr/bin/python
import sys, pandas as pd

df1 = pd.read_table(sys.argv[1], sep="\t", header=0)
df2 = pd.read_table(sys.argv[2], sep="\t", header=0)

df_merge = pd.merge(left=df1, right=df2, left_on=sys.arg[3],     right_on=sys.arg[4])
df_merge.to_csv(sys.arg[5], sep="\t")
这应该行得通

#!/usr/bin/python
import sys, pandas as pd

df1 = pd.read_table(sys.argv[1], sep="\t", header=0)
df2 = pd.read_table(sys.argv[2], sep="\t", header=0)

df_merge = pd.merge(left=df1, right=df2, left_on=sys.arg[3],     right_on=sys.arg[4])
df_merge.to_csv(sys.arg[5], sep="\t")