如何从多行输出到单行。我们也能用发电机吗?

2024-09-29 01:20:49 发布

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

请查看以下输出:

Software_Engineer: 
Networking
Software_Engineering
Computer_Graphics
Development
Design

Mechanical_Engineer:
Automata
(There is a new line character here)

我想输出应该是:-

Software_Engineer: Networking Software_Engineering Computer_Graphics Development Design

Mechanical_Engineer: Automata

到目前为止,我用python编写了以下代码:

with open("split_module.txt") as f:
    all_lines = f.readlines()
    keys_col1 = []
    values_col2 = []
    for ids, values in enumerate(all_lines):
        if ":" in all_lines[ids] and all_lines[ids+1] != "\n":
            keys_col1.append(values.strip())
            for value in keys_col1:
                print(value)

我现在得到的输出是:-

Software_Engineer:
Software_Engineer:
Mechanical_Engineer:

在这里,为什么“软件工程师:”是重复两次,我如何才能得到如下输出:-

Software_Engineer: Networking Software_Engineering Computer_Graphics Development Design

Mechanical_Engineer: Automata

请建议,因为我是新的Python。。。。谢谢


Tags: softwarekeysallcomputernetworkingcol1developmentdesign
3条回答

又快又脏

def f1(txt):
     buffer = ""
     for ee in txt.splitlines():
         if ee.endswith(':'):
             if buffer:
                 yield buffer.strip()
             buffer = ""
         buffer += ee + " "
     yield buffer.strip()

那你就可以

for i in f1(txt):
    print(i)

你可以用同样的方法从我写的文件中读取数据,就好像这都是字符串一样

我得到了期望的输出:-

fle=open("C:\Python27\projects\infile.txt")
fle2=open("C:\Python27\projects\outfile.txt",'w')
lst=fle.readlines()
for i in lst:
    i=i.strip()
    if i.endswith(':'):
        fle2.write("\n")
        fle2.write(i)
    else:
        fle2.write(i)
        fle2.write(" ")
fle.close()
fle2.close()

谢谢你的帮助

尝试此代码

fle=open("C:\Python27\projects\infile.txt")
fle2=open("C:\Python27\projects\outfile.txt",'w')
lst=fle.readlines()
for i in lst:
    i=i.strip()
    if i.endswith(':'):
        fle2.write("\n")
        fle2.write(i)
    else:
        fle2.write(i)
        fle2.write(" ")
fle.close()
fle2.close()

outflie.txt的内容

Software_Engineer:Networking Software_Engineering Computer_Graphics Development Design  
Mechanical_Engineer:Automata 

相关问题 更多 >