繁体   English   中英

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

[英]How can I iterate two files of different length in python3

请原谅我糟糕的英语。

我这里有这段代码,它使用 reportlab 编写了 pdf。 我从两个 CSV 文件中挑选数据。 对于第二个文件,如果它不可用,则提供一个可选文件。 当我在 iterable 中运行它时,有些页面没有出来。 我知道这是因为第一个文件和第二个文件的长度相同,但是如果执行 except 部分,第一个文件和第二个文件的长度将不同。 有没有一种方法可以对其进行编码,以便如果 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 只是一个空文件,其中包含我键入的一些 __。

Python3 有一个名为itertools.zip_longest的 function 。 根据描述,它可能完全符合您的要求。 您只需为两个文件中较短的一个中缺少的元素提供默认填充值。

暂无
暂无

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

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