2011-08-19 32 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

相關問題