繁体   English   中英

如何在特定于 python 的 ValueError 中引发?

[英]How can I raise in python specific ValueError?

如果我的 infile 或 outfile 或其中两个为空,我必须引发 ValueError('Invalid file name')

这是python中的代码:

def get_x_freqs(infile, outfile, x):
    # Write the rest of the code for question 3 below here.
    f =None
    try:
        f=open(infile, "r")
        if infile=='':
            raise ValueError('Invalid file name')

        else:
            d={}
            for line in f:
                element = line.split()
                for word in element:
                    d[word]=d.get(word,0)+1

        try:
            f=open(outfile, "w")
            if outfile=='':
                raise ValueError('Invalid file name')
            else:
                sorted_elements = sorted(d.keys(), key=d.get, reverse=True)
                for e in sorted_elements[:x]:
                    print(e, ':', d[e])

        finally:
            if f!= None:
                f.close()


in_filename = 'C:\\Users\\shirl\\Desktop\\מדעים להייטק\\פיתון\\Exercises\\ex.5\\q3.txt'
out_filename = 'C:\\Users\\shirl\\Desktop\\מדעים להייטק\\פיתון\\Exercises\\ex.5\\q3_out.txt'

get_x_freqs(in_filename, out_filename, 3)

你的try-except块应该更像这样:

try:
    f=open(infile, "r")
    d = {}
    for line in f:
        element = line.split()
        for word in element:
            d[word] = d.get(word, 0) + 1
except:
    raise ValueError('Invalid file name')

暂无
暂无

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

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