如何删除csv中未被ascii感染的行

如何解决如何删除csv中未被ascii感染的行

|| 我有一个很大的csv文件,看起来像这样: 关键字,展示次数 笛卡尔免费早餐,951 第451章 公司会议155 租车,356 聪明,1224 第064章 英语翻è¯',160 我已经将文件读入字典,如下所示:
# Read the CSV
filename = argv[1]
csvfile = open(filename,\'r\')
csvreader = csv.DictReader(csvfile)
rows = []
for row in csvreader:
  rows.append(row) 
我将如何删除带有非ASCII字符的行,这样我只能得到以下结果: 关键字,展示次数 笛卡尔免费早餐,951 公司会议155 租车,356 聪明,1224 第064章 简而言之:如果该行中存在任何非ASCII字符,则必须删除整行。 谢谢!     

解决方法

import csv,sys

filename = sys.argv[1]
csvfile = open(filename,\'r\')
csvreader = csv.DictReader(csvfile)
rows = []
for row in csvreader:
  try:
      row[\'keywords\'].decode(\'ascii\')
      rows.append(row) 
  except UnicodeDecodeError:
      pass

print rows
    ,简单方法:您可以尝试对其进行解码,并捕获异常。
try:
    string.decode(\'ascii\')
except UnicodeDecodeError:
    print \"Not ascii\"
    ,万一您有兴趣,您很可能会丢掉好数据。在我看来,这似乎不是随意的垃圾:
>>> import unicodedata as ucd
>>> for x in open(\'unascii.txt\').read().decode(\'utf8\',\'replace\'):
...     if x > u\'\\x7f\': print repr(x),ucd.name(x,\'<no name>\')
...
u\'\\u30d1\' KATAKANA LETTER PA
u\'\\u30bd\' KATAKANA LETTER SO
u\'\\u30b3\' KATAKANA LETTER KO
u\'\\u30f3\' KATAKANA LETTER N
u\'\\u82f1\' CJK UNIFIED IDEOGRAPH-82F1
u\'\\u8bed\' CJK UNIFIED IDEOGRAPH-8BED
u\'\\u7ffb\' CJK UNIFIED IDEOGRAPH-7FFB
u\'\\u8bd1\' CJK UNIFIED IDEOGRAPH-8BD1
>>>
请注意,该文件使用UTF-8成功解码(如@Ignacio所暗示),并且第一堆明显的乱码实际上是有道理的(日语pasocom == \“ personal computer \”,用片假名编写)和第二堆(英语翻译) )被Google翻译检测为中文,并翻译为“英语翻译”。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?