2017-04-06 33 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')