读两行并写成一行

时间:2014-06-09 06:05:12

标签: python concatenation

我是python的新手。使用下面提到的代码将两行作为另一个txt文件中的一行

import glob

dirname = 'F:\\mmml'

list_of_files = glob.glob(dirname+'/*.mml')

with open("F:\\d.txt", "w") as fout:

        for fileName in list_of_files:
            for line in open(fileName, "r"):
                if line.startswith('MOD:') or line.startswith('EQUIPMENT:'):
                   fout.writelines(line)

但我得到的结果是垂直顺序,如

MOD

EQUIPMENT

但我希望输出

MOD EQUIPMENT

我无法理解类似问题的现有解决方案。

1 个答案:

答案 0 :(得分:0)

您的问题是,for line in open(fileName, "r"): \r\n结尾处的换行符\n / line仍然存在。因此,您只需要strip() line来解决您的问题:

for line in open(fileName, "r"):
    if line.startswith('MOD:') or line.startswith('EQUIPMENT:'):
       fout.writelines(line.strip())

或使用splitlines方法:

for line in open(fileName, "r").read().splitlines():
    if line.startswith('MOD:') or line.startswith('EQUIPMENT:'):
       fout.writelines(line)

请注意,您可以在一行中执行最后一次for循环:

fout.writelines(' '.join(line.strip() for line in open(fileName, "r") \
    if line.startswith('MOD:') or line.startswith('EQUIPMENT:')))