2017-03-20 238 views
0

這似乎是一件非常簡單的事情,但我無法自己找到答案。 我有一個函數返回輸出的許多行:如何將多行輸出轉換爲單行多行輸出

... if lines[i].strip().find('OPEN_MODE') == 0: 
      res = lines[i:i + 3] 
      for i in res: 
       yield i.strip() 
      print('') 
for inp in db_status(remote_conn): 
    print(int) 
> DATABASE_STATUS 
> ----------------- 
> ACTIVE ... 

下一步是對整個輸出到另一個功能通過作爲多行字符串,例如:

'''DATABASE_STATUS 
----------------- 
ACTIVE...''' 

我曾嘗試使用splitlines ()在int上,或者用換行符'\ n'.join()加入字符串,但是沒有成功。

+0

你究竟做了什麼,究竟發生了什麼錯誤? –

+0

它會分別返回每一行,所以您需要在加入之前將其收集到for循環中,或者您需要提前移動連接(在收益率之前) –

回答

1

如果你只是問:「我怎麼得到我的函數所有產生值成一個字符串?」,然後嘗試使用join

result = "\n".join(db_status(remote_conn)) 

我知道你說你試過"\n".join已經並沒有工作,但我猜你通過了錯誤的參數,例如在for循環中的"\n".join(inp)。有了這個,你實際上並不需要在函數之外的for循環。

+0

這正是我正在查找的內容:_result =「\ n」。加入(db_status(remote_conn))_。謝謝! – feedthemachine