如何在 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 的函数。从描述来看,它可能完全符合您的要求。您只需为两个文件中较短的文件中缺少的元素提供默认填充值。
请原谅我糟糕的英语。
我这里有使用 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 的函数。从描述来看,它可能完全符合您的要求。您只需为两个文件中较短的文件中缺少的元素提供默认填充值。