Python 3.x 尝试在Python中比较两个整数

Python 3.x 尝试在Python中比较两个整数,python-3.x,Python 3.x,好的,我一直在通过Stackoverflow和其他网站挖掘,试图理解为什么这不起作用。我创建了一个函数来打开csv文件。函数打开文件一次以计算行数,然后再次打开以实际处理文件。我试图做的就是这样。一旦文件被处理并且记录计数匹配。然后我将把数据加载到数据库中。问题是记录计数不匹配。我检查了两个变量,它们都是“int”,所以我不明白为什么“==”对我不起作用。以下是我创建的函数: def mktdata_import(filedir): ''' This function is us

好的,我一直在通过Stackoverflow和其他网站挖掘,试图理解为什么这不起作用。我创建了一个函数来打开csv文件。函数打开文件一次以计算行数,然后再次打开以实际处理文件。我试图做的就是这样。一旦文件被处理并且记录计数匹配。然后我将把数据加载到数据库中。问题是记录计数不匹配。我检查了两个变量,它们都是“int”,所以我不明白为什么“==”对我不起作用。以下是我创建的函数:

def mktdata_import(filedir):
    '''
    This function is used to import market data
    '''
    files = []
    files = filedir.glob('*.csv')

    for f in files:
        if fnmatch.fnmatch(f,'*NASDAQ*'):
            num_rows = 0
            nasObj = []
            with open(f,mode='r') as nasData:
                nasIn = csv.DictReader(nasData, delimiter=',')
                recNum = sum(1 for _ in nasData)

            with open(f,mode='r') as nasData:
                nasIn = csv.DictReader(nasData, delimiter=',')
                for record in nasIn:
                    if (recNum - 1) != num_rows:
                        num_rows += 1
                        nasObj.append(record)
                    elif(recNum - 1) == num_rows:
                        print('Add records to database')
                    else:
                        print('All files have been processed')

            print('{} has this many records: {}'.format(f, num_rows))
            print(type(recNum))
            print(type(num_rows))

        else:
            print("Not a NASDAQ file!")
(移动评论以回答问题)

nasData
包括文件中的所有行,包括标题行。使用
DictReader
将数据转换为字典时,只处理数据行,因此
len(nasData)
始终比
len(nasIn)


正如OP提到的,迭代元素不起作用,因此需要使用行号才能使脚本工作:
(recNum)==nasIn.line\u num

尝试使用
recNum=sum(1代表nasIn)
nasData
包含标题行。我尝试了一下,现在我的输出如下:marketData\NASDAQ\NASDAQ\u 20201023.csv有这么多记录:1所以,@Mike67在尝试您的解决方案后。我尝试使用(recNum)=nasIn.line_num,它似乎正在工作。我将添加在数据库上传部分,并尝试一下。谢谢你给我指明了正确的方向!