gpt4 book ai didi

Python 命令行参数文件名

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:53 24 4
gpt4 key购买 nike

我有一个脚本,它首先使用 pandas 读取表数据,然后进行一些计算:

import numpy as np
import sys
import pandas as pd
originaldata = pd.read_csv('../file.txt', sep='\t', skiprows = 31)
originaldata = originaldata.fillna(0)
.... (rest of the code)

我想在命令行中传递文件名,而不是每次有不同的文件时都在代码中输入它。我的代码对吗?

import numpy as np
import sys
import pandas as pd
filename = sys.argv[-1]
originaldata = pd.read_csv('filename', sep='\t', skiprows = 31)
originaldata = originaldata.fillna(0)
.... (rest of the code)

所以在命令行上我会输入:

$python  program1.py  file.txt 

更新:

所以从评论中我了解到一个错误是

originaldata = pd.read_csv('filename', sep='\t', skiprows = 31)

应该是

originaldata = pd.read_csv(filename, sep='\t', skiprows = 31)

而不是使用 sys.argv[-1] ,argparse 更有用。所以在这里我将代码更改为:

import argparse
parser = argparse.ArgumentParser(description='program1 ')
parser.add_argument('-i','--input', help='Input file name',required=True)
originaldata = pd.read_csv(args.input , sep='\t', skiprows = 31)

请注意,我使用的是 Anaconda 的 Spyder IDLE,其中包含 pandas 模块,对于我的程序,它在 IDLE 中运行良好,但命令行有问题。原来 Anaconda 使用 pythonwin ,所以在设置 pythonwin 的路径后,在我的命令行上我输入:

$pythonwin program1.py file.txt 

然后弹出“用于 Win32 的 python”并提示“我仍然无法使用 win32ui”。我现在很困惑。跟我用64位电脑有关系吗?

最佳答案

这一行有问题:

originaldata = pd.read_csv('filename', sep='\t', skiprows = 31)

应该是:

originaldata = pd.read_csv(filename, sep='\t', skiprows = 31)

这条线通常可以工作,但是......

filename = sys.argv[-1]

我不会这样做的。你只是得到最后的论点。为什么不更精确?我要么使用 argparse,这在这种情况下可能有点矫枉过正,但我​​可能只使用 sys.argv[1] 并可能在用户使用时警告他们通过测试 sys.argv

length 参数数量不正确

要解决错误,请尝试添加:

import pandas as pd

您可能需要使用运行脚本的 python 版本pip install pandas

关于Python 命令行参数文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766029/

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