【问题标题】:Remove repeating lines of characters when reading text files in python?在python中读取文本文件时删除重复的字符行?
【发布时间】:2014-01-09 23:11:05
【问题描述】:

我正在读取从 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 文件的 sn-p:

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

【问题讨论】:

  • 是的,跳过 CSV 中的行和列可能比将 CSV 解析为其他形式然后尝试恢复您丢弃的原始结构以便跳过其中的一部分更好。您能否向我们展示 CSV 的片段以及您当前的解析代码?
  • 已包含 csv 文件的 sn-p 和我的简单读取文件代码。

标签: python pandas readlines


【解决方案1】:

您的真正问题似乎是您将 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']

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 2020-10-07
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    相关资源
    最近更新 更多