2011-08-19 87 views
0

我一直呆在这里一天。所以我想问问专家。 我从它在形式在一个字符串中的两个delimeters之间添加各种字符串。 python

|something| 
|something else| 
|something_1 
something_2 
someting_3| 
|something blah blah| 

数据文件中读取内容..等.. 使你们想通了..分隔符是“|” 现在..我想输出以下形式 | something | |别的东西| | something_1_something_2_someting_3 | |东西等等等等 在一个字符串 分隔符之间基本上是所有任何线索如何去了解它 编程语言是Python

回答

1
import re 
print re.findall(r"\|[^|]*\|", text) 

如果你还没有见过这个,它的正则表达式。基本上你可以在你正在寻找的文本中描述一个模式。如果你不了解他们,我建议你阅读。

+0

'[s.replace('\ n','_')for s in re.findall(r“\ | [^ |] * \ |”,text)]'为所需输出 –

+0

hi ..这是我的代码..但它不工作截至目前..def readProductDescriptionFile(文件名): #print“helo here” #如果这是空的,然后退出时出错 如果“”==文件名: 返回[] 文本= “” 尝试: 开放(文件名, 'R')为f: 线= f.readlines() 除外的IOError如(错误,字符串错误): 打印“I/O错误( {0}):{1}“。格式(errno,strerror),文件名 return [] for re.findall(r“\ | [^ |] * \ |”,text): line = lines.replace('\ n','_') print line – Fraz

+0

@Fraz,please编辑你的问题以包含代码,因为如果没有换行符,我无法理解它。还要清楚地描述它的功能和你期望的功能。 –

0

我认为你让自己太复杂了。你描述输出格式的方式,似乎你真正需要做的就是把所有东西都放在一行上。如果我对此有所了解,则可以以字符串形式读取所有数据(只要文件不太大),请删除换行符('\ n'或'\ r \ n',具体取决于您的系统)并将其写入文件。或者,如果您想要更高效地存储内存,您可以逐行遍历文件(我推荐的解决方案)。

如果我误解了你的输出格式,请在这里留言,我会帮你解决。我没有提供任何代码,因为这可以在Python文档中轻松找到(即字符串方法,文件I/O)。

+0

Hi.Thanks for the response.so数据格式如下:| 5 | 1 | Celestine 8x10 | - | <p>粉蓝色的浓密丝绸花卉蔓藤花纹与这款地毯的米色羊毛地面相映衬,让人想起新艺术风格中常见的有机漩涡和自然图案。它可能看起来像你的祖母曾经拥有的东西,但它不可能是新鲜的。 </p >在某些行中,此条目可以分成多行。所以有很多这样的数据线,所以我想解析这些数据到现有的数据结构。我有这种标记的方式需要一个字符串中的分隔符之间的所有内容 – Fraz

相关问题