读两行,写一行

2024-03-29 08:11:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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

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


Tags: ofintxtmodforlinefilesopen
1条回答
网友
1楼 · 发布于 2024-03-29 08:11:13

您的问题是,当您执行for line in open(fileName, "r"):时,\r\n/\n末尾的换行符仍然存在。所以你只需要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:')))

相关问题 更多 >