gpt4 book ai didi

python - 如何处理 python 中与 sys.argv[] 相关的错误?

转载 作者:行者123 更新时间:2023-12-01 04:42:16 25 4
gpt4 key购买 nike

我写下了一个简单的代码来打开一个读取数据帧的 csv 文件。该代码能够打印数据帧。为了使此代码更具交互性,我集成了一个功能,以便在 sys.argv[1] 不为 true 时它可以引发错误。不幸的是,我无法正确集成“引发异常部分”,在经过太多努力后我正在寻找解决方案。下面给出了代码(虽然,我已经尝试了很多本地代码的事情,但在这里我只粘贴我为实现目标所做的最后更改(即如果 sys.argv[1] 不是 True 则引发异常) :谢谢

class My_csv_class(object):

def __init__(self):

self.csv_path = sys.argv[1]

def csv_open(self):

try:
self.r = pd.read_csv(self.csv_path)
except IndexError:
print "Cannot open the file: "
else:
return self.r

def print_r(self):

self.r


if __name__=="__main__":

a = My_csv_class()
a.csv_open()
a.print_r()

最佳答案

异常是在您的 __init__ 方法中引发的。您可以将 try.. except 放在实例创建周围:

if __name__=="__main__":
try:
a = My_csv_class()
except IndexError:
print "You did not specify a file"
sys.exit(1)
a.csv_open()
a.print_r()

但是,在此类代码之外处理命令行问题更为常见。让您的代码无需命令行即可重复使用,并将所有“脚本任务”放入 __main__ protected 代码中:

class My_csv_class(object):
def __init__(self, filename):
self.csv_path = filename

def csv_open(self):
self.r = pd.read_csv(self.csv_path)

def print_r(self):
self.r

if __name__=="__main__":
try:
filename = sys.argv[1]
except IndexError:
print "You did not specify a file"
sys.exit(1)

a = My_csv_class(filename)
a.csv_open()
a.print_r()

关于python - 如何处理 python 中与 sys.argv[] 相关的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30343225/

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