在一个字符串中的两个delimeter之间附加各种字符串。python

在一个字符串中的两个delimeter之间附加各种字符串。python,python,string,delimiter,Python,String,Delimiter,我被困在这里一天了。所以我想问问专家们。 我正在从一个文件中读取内容,该文件的数据格式为 |something| |something else| |something_1 something_2 someting_3| |something blah blah| 。。等等 所以当你们发现的时候。。分隔符是“|” 现在。。我想要以下形式的输出 |某物| |别的| |有点什么吗| |什么废话| 基本上,在一个字符串中分隔符之间的所有内容 有什么线索吗 编程语言是Python import r

我被困在这里一天了。所以我想问问专家们。 我正在从一个文件中读取内容,该文件的数据格式为

|something|
|something else|
|something_1
 something_2
 someting_3|
|something blah blah|
。。等等 所以当你们发现的时候。。分隔符是“|” 现在。。我想要以下形式的输出 |某物| |别的| |有点什么吗| |什么废话| 基本上,在一个字符串中分隔符之间的所有内容 有什么线索吗 编程语言是Python

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

如果您以前没有见过,那么它是一个正则表达式。基本上,你在文本中描述了你正在寻找的模式。如果你不认识他们,我建议你仔细阅读。

我认为你把这件事弄得太复杂了。按照您描述输出格式的方式,似乎您真正需要做的就是将所有内容放在一行上。如果我说的对,您可以将所有数据作为字符串读取(只要文件不太大),删除换行符(“\n”或“\r\n”取决于您的系统),然后将其写入文件。或者,如果希望提高内存效率,可以逐行遍历文件(我推荐的解决方案)


如果我误解了您的输出格式,请在这里发表评论,我将帮助您解决这个问题。我没有提供任何代码,因为这在Python文档(即字符串方法、文件I/O)中很容易找到。

[s.replace('\n','\u')代表re.findall中的s(r“\\\\\[^ 124;]*\\\\\\\\”,text)]
代表所需的输出。。这是我的密码。。但是它现在还不起作用..def readProductDescriptionFile(文件名):#打印“helo here”#如果该文件为空,则在“==文件名:return[]text=”“尝试:将open(filename,'r')作为f:lines=f.readlines()时退出,但IOError作为(errno,strerror):打印“I/O error”({0}:{1}.format(errno,strerror),文件名return[]用于re.findall中的行(r“\\\;[^ 124;]*\\\\\\\\”,text):line=lines.replace('\n',“\\”)印刷品line@Fraz,请编辑您的问题以包含代码,因为没有换行符我无法理解它。请清楚地描述它的功能和您期望它做什么。您好。感谢您的回答。因此,数据采用以下格式| 5 | 1 | Celestine 8x10 |-| pA深蓝色丝质花卉阿拉伯图案与米色形成鲜明对比这块地毯的羊毛地面,让人想起了新艺术运动中常见的有机漩涡和自然图案。它可能看起来像你祖母曾经拥有的东西,但它再新鲜不过了。/p在某些行中,这个条目可以分为多行。因此有许多这样的数据行。所以我想将这些数据解析到现有的数据结构中。我ve tokenize这需要在一个字符串中分隔符之间的所有内容