我是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
我无法理解类似问题的现有解决方案。
答案 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:')))