欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python的一些报错记录(持续更新)

程序员文章站 2022-07-02 18:45:53
...

1. IndexError: list index out of range

debug报错:{TypeError}‘builtin_function_or_method’ object is not subscriptable
报错原因:csv文件中最后一行有空数据,即在列表list中为[],引发报错。

2. " re.error: missing ), unterminated subpattern at position 1 "

原因及解决:通过python的debug模式找到了出问题的文件是NER结果的7.10.2,其中有出现如“ 斜( ”这种词,导致报错,手动删去后问题解决。

3. 文件编码格式报错

Python的一些报错记录(持续更新)
对于Unicode字符,python解释器需要先将Unicode字符编码为GBK,然后再写入csv文件。但是由于该Unicode字符串中包含一些GBK中无法显示的字符,导致此时提示“’gbk’ codec can’t encode”的错误。
解决方法:尝试了许多网上的解决方案,最后设置了一下输出结果存放的csv文件的编码格式,解决了问题。
Python的一些报错记录(持续更新)

4. Anaconda Prompt中安装包

用conda install安装包时,若出现如下报错,则说明Anaconda相关网站没有这个包,就会报出找不到的错误。
Python的一些报错记录(持续更新)
解决办法:改用pip install安装,成功。

5. No such file or directory

Python的一些报错记录(持续更新)
Python的一些报错记录(持续更新)

原因:cut()函数中的for函数中最后到return就返回了,后续代码不会执行,所以不会生成报错中提示没有的文件。

6. ValueError: not enough values to unpack (expected 2, got 1)

原因:由于自定义的idf语料库的txt文件中,存在空行或换行符\n,以及存在△、$等特殊字符。
解决方法:写了两个函数,用于去除空行、换行符和特殊字符,只保留中文和英文字符。

# 去掉每行头尾空格及空行、换行符\n
def clearBlankLine(lines):
    result = []
    for line in lines:
        line = line.strip()  # 去掉每行头尾空格
        if not len(line):  # 如果是空行
            continue
        result.append(line)
    return result

# 去掉特殊字符,只保留中英文字符
def clearSpecialSymbols(lines):
    result = []
    for line in lines:
        valid1 = re.search('^[a-zA-Z]',line)
        valid2 = re.search('^[\u4e00-\u9fa5]',line)
        if valid1 or valid2:
            result.append(line)
    return result
相关标签: Python python bug