2014-01-09 46 views
0

我正在讀取從CSV文件複製的文本文件。當我在python中讀取文件時,會看到大量不必要的重複行,如下所示。我如何去掉這三個不需要的行,包括在每個文本的開頭和結尾處的\ cf0和\ cell \ row?在閱讀python中的文本文件時刪除重複的字符行?

或者我應該直接從csv文件本身讀取文本?該文本僅位於CSV文件的其中一列中。

\itap1\trowd \taflags1 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil 

\clvertalc \clshdrawnil \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadl100 \clpadr100 \gaph\cellx8640 

\pard\intbl\itap1\pardeftab720 

\cf0 i have been using your product and it has been helping me a lot to solve business problem,\cell \row 



\itap1\trowd \taflags1 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil 

\clvertalc \clshdrawnil \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadl100 \clpadr100 \gaph\cellx8640 

\pard\intbl\itap1\pardeftab720 

\cf0 I am very happy with your products. Very easy to use.\cell \row 



\itap1\trowd \taflags1 \trgaph108\trleft-108 \trbrdrl\brdrnil \trbrdrr\brdrnil 

\clvertalc \clshdrawnil \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadl100 \clpadr100 \gaph\cellx8640 

\pard\intbl\itap1\pardeftab720 

\cf0 Many improvements with income tracker, and other time saving elements. Newer look, easier navigation. I believe there definitely is a time savings from past versions.\cell \row 

下面是CSV文件的一個片段:

page_url  Review_title Product_id Rating Publish_date Review_Description 
www.blabla.com Great!   777777  5  01/01/14 Excellent upgrade! Was not disappointed! 

我只是複製從Review_Description列文本粘貼他們都在一個文本文件中。

這裏是我的Python代碼只是讀取文件:

text_file=open("my_text.txt", "r") 
lines=text_file.readlines() 
print lines 
+0

是的,它可能會更好跳過的行和列的CSV比到CSV解析成一些其他形式,然後嘗試恢復原來的結構,你扔掉,所以你可以跳過它的一部分。你能告訴我們一個CSV的片段和你當前的解析代碼嗎? – abarnert

+0

已包含csv文件的片段和我簡單的讀取文件代碼。 – jxn

回答

0

你真正的問題在這裏似乎是你粘貼的CSV到RTF文件,而不是一個文本文件。粘貼到Windows上的Wordpad或Mac上的TextEdit(尤其是如果您從Excel或Numbers中複製而來)並保存,而不明確告訴它「保存爲純文本」或「轉換爲純文本」通常會「幫助」您自動方式。

雖然你可能嘗試解析RTF以恢復原​​始文本,但如果可能的話,使用原始文本會更好。用Python解析CSV文件 - 無論是Pandas還是stdlib的模塊 - 都非常簡單。

例如,您的文件似乎使用製表符作爲分隔符,並且沒有其他非默認功能。如果是這樣的:

import csv 
with open('my_csv.csv', 'rb') as f: 
    reader = csv.DictReader(f, delimiter='\t') 
    reviews = [row['Review_Description'] for row in reader] 

現在你有所有的評論列表,並且可以做你想做與他們任何東西。如果你只是想打印出來,這是更簡單:

import csv 
with open('my_csv.csv', 'rb') as f: 
    reader = csv.DictReader(f, delimiter='\t') 
    for row in reader: 
     print row['Review_Description']