首页 > 解决方案 > 如何为空单元格 csv 文件返回 none 或 0

问题描述

我已经查看了该网站的方法来做到这一点,但没有成功。

所以我一起遍历两个 csv 文件,当我到达一个空字符串/单元格时,它给了我错误:ValueError: invalid literal for int() with base 10: ''

我明白这意味着什么,但这是我尝试过的。

def normalise(students_file, units_list):
    file1 = open(students_file, 'r')
    data1 = file1.readline().splitlines()

    file2 = open(units_list, 'r')
    data2 = file2.read().splitlines()


    for line in data1:
        line = line.split(",")
        for row in data2:
            row = row.split(",")
            for n in range(1, len(row), 2):
                for i in range(1, len(line), 1):
                    if i == '':
                        pass
                    else:
                        print(int(line[i]) / int(row[n]))

我知道这段代码有效,因为第一个增量的输出是 0.6,这是我想要的,但是第二个增量试图分割一个空字符串,并且由于 int() 无法转换一个空字符串,它运行一个错误。

任何解决方案将不胜感激。

标签: python

解决方案


            for i in range(1, len(line), 1):
                if i == '':

if永远不可能,True因为i它将是一个整数。你大概是说if line[i] == '':

另一种方法是使用try块:

try:
     print(int(line[i]) / int(row[n]))
except:
    # do whatever you need to do when cell is empty 
    # or whatever other error occurs, for example division by 0...

推荐阅读