在python中读取文本文件时删除重复的字符行?

时间:2014-01-09 23:11:05

标签: python pandas readlines

我正在阅读从CSV文件复制的文本文件。当我在python中读取文件时,我得到了大量不必要的重复行,如下所示。如何删除这三个不需要的行,包括每个文本开头和结尾的\ cf0和\ cell \ row?

或者我应该直接从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

1 个答案:

答案 0 :(得分:0)

这里的真正问题似乎是您将CSV粘贴到RTF文件中,而不是文本文件中。粘贴到Windows上的Wordpad或Mac上的TextEdit(特别是如果您从Excel或Numbers复制)并保存它而不明确告诉它“另存为纯文本”或“转换为纯文本”通常会“帮助”您方式自动。

虽然可以尝试解析RTF以恢复原​​始文本,但如果可能的话,最好只使用原始文本。使用Pandas或使用stdlib的csv模块解析Python中的CSV文件非常简单。

例如,您的文件似乎使用制表符作为分隔符,而没有其他非默认功能。如果是这样的话:

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']
相关问题