Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python如何并排打印2个或更多文本文件的内容?_Python_File - Fatal编程技术网

Python如何并排打印2个或更多文本文件的内容?

Python如何并排打印2个或更多文本文件的内容?,python,file,Python,File,假设我有两个文本文件,fruit.txt和veg.txt,看起来像 Apple Pear Orange Brocolli Cucumber Spinach 我有几个for循环,用于打印.txt文件的内容 for line in fruit: fields = line.split("\n") col = fields[0] print(col) for line in veg:

假设我有两个文本文件,
fruit.txt
veg.txt
,看起来像

Apple
Pear
Orange

Brocolli
Cucumber
Spinach
我有几个for循环,用于打印.txt文件的内容

       for line in fruit:
            fields = line.split("\n")   
            col = fields[0]
            print(col)
        for line in veg:
            fields = line.split("\n")   
            col1 = fields[0]
            print(col1)
我得到的结果是

Apple
Pear
Orange
Brocolli
Cucumber
Spinach
我想试着把它并排打印出来

Apple Brocolli
Pear Cucumber
Orange Spinach 

您可以在内置字符串中使用
format
方法和
zip\u longest

from itertools import zip_longest
...
# Assuming fruit is file_context.readlines()
fruits = fruit.split("\n")
vegs = veg.split("\n")
for l1,l2 in zip_longest(fruits, vegs, fillvalue=""):
    print("{}\t{}".format(l1, l2))   
zip_longest
将处理水果和蔬菜数量不等的情况

注意:以上内容将在Python3中使用。对于python 2,请记住替换:

from itertools import zip_longest
与:


更简单的方法是像这样使用readlines方法,“end”参数是在末尾打印的打印值,默认值为“\n”

fruits = fruit.readlines()   
vegs = veg.readlines() 

for i in range(min(len(vegs),len(fruits))):
    print(fruits[i],end="\t")
    print(vegs[i])

水果和蔬菜大小相同吗?看看函数。
[x代表zip中的x(水果,蔬菜)]
在本例中是的,但我还有一些其他长度不均匀的文本文件,例如3个水果和4个蔬菜。副本仍然存在。使用
itertools.zip\u longest(…)
示例。对于此方法,我假设它不适用于不均匀列表?因为我在尝试时得到了一个索引器。这应该适用于不均匀列表,因为“I”实际上取“len(水果)”和“len(蔬菜)”的“min”值,请确保复制了min部分。
fruits = fruit.readlines()   
vegs = veg.readlines() 

for i in range(min(len(vegs),len(fruits))):
    print(fruits[i],end="\t")
    print(vegs[i])