0

我正在阅读从 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
4

1 回答 1

0

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

虽然您可以尝试解析 RTF 以恢复原始文本,但如果可能的话,最好只使用原始文本。在 Python 中解析 CSV 文件(使用 Pandas 或使用 stdlib 的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']
于 2014-01-09T23:44:58.830 回答