2017-04-06 49 views
1

這是我的功能。試圖將這一切打印到一行。Python字符串格式化在打印語句上創建隨機新行

這裏是輸出 - >

config::$var['pdf']['meta']['staff_member_name'] 
= ";" 

到控制檯由於某種原因一個新行的= ";"部分字符串打印?

這完全只是一個個人破解,以幫助重複的工作要求,所以我不尋找任何幻想。

這裏是我的功能 - >

def auto_pdf_config(file): 
    with open(file) as f: 
     content = f.readlines() 
     kill = " = array(" 
     start = "config::$var['intake']" 
     new_line = "" 
     for line in content: 
      if kill not in line: 
       pass 
      elif start in line: 
       new_line = line 
       x = new_line.replace(kill, "") 
       y = x.replace(start,"") 
       pdf_end = ' = ";" ' 
       z = "config::$var['pdf']['meta']{}{}".format(y,pdf_end) 
       print(z) 

回答

1

看來你 「Y」 變量中有新的生產線。你可以嘗試去掉它。

y = x.replace(start,"").strip('\n') 
+0

更普遍,每'line',與上次的例外,將有一個'\ N'在最後,當你正在經歷的文件。此外,基本'strip()'將採用換行符(以及任何其他可能或不需要的空格)。 – TemporalWolf

+0

非常感謝!新的python和錯過了這種方法。工作像一個魅力 – Willy

+0

@Willy快樂編碼:) – galaxyan

0

由於x = new_line.replace(殺死 「」)中,y = x.replace(啓動, 「」),和NEW_LINE是內容的線,它包含行尾符號(\ n)的,這是爲什麼在pdf_end之前添加了這個結束符號。你只需要從y中刪除結束符號。 你可以做這樣的事情:

y = y.strip('\n')