如何在python3中迭代两个不同长度的文件

问题描述 投票:0回答:1

请原谅我的英语不好。

我这里有使用reportlab编写pdf的代码。我正在从两个CSV文件中选择数据。对于第二个文件,如果不可用,则提供一个可选文件。当我以迭代方式运行它时,某些页面不会显示出来。我知道这是因为第一个文件和第二个文件的长度相同,但是如果执行了除外部分,则第一个文件和第二个文件的长度将不会相同。有没有一种方法可以对它进行编码,以便如果file1和file2(except)可用,那么file2的长度(except可以调整到与file1相同的级别,以便遍历file1中的所有项目。

file1 = pd.read_csv('file1.csv')
try:
    file2 = pd.read_csv('file2.csv')
except:
    file2 = pd.read_csv('option2_file.csv')
c = canvas.Canvas('samplepdf.pdf')
for i, x in zip(file1,file2):
    a = i[0]
    b = i[1]
    c = i[2]
    d = i[4]

    e = x[0]
    f = x[1]

    '''
    Do something the values
    '''
c.save()

无论我在这里做什么,都不容易理解。我想要的是遍历file1中的所有项目,但是这没有发生,因为file2的项目长度不同。我想知道是否可以找到一种方法来编写代码来将file2的长度调整为file1的长度,以便该过程成功。 File2只是一个空文件,带有我输入的__。

python for-loop iterator reportlab
1个回答
0
投票

Python3具有一个称为itertools.zip_longest的函数。根据描述,它可以完全满足您的要求。您需要提供的是两个文件中较短的一个缺少的元素的默认填充值。

© www.soinside.com 2019 - 2024. All rights reserved.