尝试使用python读取CSV文件时遇到障碍。

更新:如果只想跳过字符或错误,可以打开文件,如下所示:

with open(os.path.join(directory, file), 'r', encoding="utf-8", errors="ignore") as data_file:

到目前为止,我已经尝试过了。

for directory, subdirectories, files in os.walk(root_dir):

for file in files:

with open(os.path.join(directory, file), 'r') as data_file:

reader = csv.reader(data_file)

for row in reader:

print (row)

我得到的错误是:

UnicodeEncodeError: 'charmap' codec can't encode characters in position 224-225: character maps to

我试过了

with open(os.path.join(directory, file), 'r', encoding="UTF-8") as data_file:

错误:

UnicodeEncodeError: 'charmap' codec can't encode character '\u2026' in position 223: character maps to

现在,如果我只打印data_file,它说它们是cp1252编码的,但是如果我尝试

with open(os.path.join(directory, file), 'r', encoding="cp1252") as data_file:

我得到的错误是:

UnicodeEncodeError: 'charmap' codec can't encode characters in position 224-225: character maps to

我也尝试了推荐的套餐。

我得到的错误是:

UnicodeEncodeError: 'charmap' codec can't encode characters in position 224-225: character maps to

我要解析的行是:

2015-11-28 22:23:58,670805374291832832,479174464,"MarkCrawford15","RT @WhatTheFFacts: The tallest man in the world was Robert Pershing Wadlow of Alton, Illinois. He was slighty over 8 feet 11 inches tall.","None

任何想法或帮助表示赞赏。

解决方案

我将使用csvkit,它使用自动检测适当的编码和解码。例如

import csvkit

reader = csvkit.reader(data_file)

正如聊天解决方案所述,

for directory, subdirectories, files in os.walk(root_dir):

for file in files:

with open(os.path.join(directory, file), 'r', encoding="utf-8") as data_file:

reader = csv.reader(data_file)

for row in reader:

data = [i.encode('ascii', 'ignore').decode('ascii') for i in row]

print (data)

python csv文件复制时的编码问题_使用python读取CSV文件时的编码问题相关推荐

  1. python带格式复制excel样式和内容_使用python的xlrd,xlwt和xlutils.copy保留样式

    以下是我将作为针对xlutils 1.4.1的补丁提出的代码使用示例# coding: asciiimport xlrd, xlwt# Demonstration of copy2 patch for ...

  2. copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...

    listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略. //将d:\java目录下 ...

  3. 将d:\java目录下的所有.java文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad

    package com;import java.io.*; import java.util.ArrayList; import java.util.List; /* 编写一个程序,将d:\java目 ...

  4. 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad

    package com.hbut.test; import java.io.File; import java.io.FileNotFoundException; import java.io.Fil ...

  5. Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg...

    package com.swift;import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; im ...

  6. .shp文件的存储结构是怎样的?底层读取shapefile文件

    .shp文件的存储结构是怎样的?底层读取shapefile文件 基础知识 shp的存储结构 python 字节流读取Shp文件 基础知识 大家都比较熟悉shp文件,它是GIS软件可以读取的矢量文件.但 ...

  7. python写入csv文件时携带双引号_在Python中解析csv时由于双引号导致的问题.

    我有以下格式的csv文件, "1";"A";"A:"61 B & BA";"C" 以下是我读取csv文 ...

  8. python 字符编码处理_浅析Python 字符编码与文件处理

    Python字符编码 目前计算机内存的字符编码都是Unicode,目前国内的windows操作系统采用的是gbk. python2默认的字符编码方式是ASCII python3默认的字符编码方式是Un ...

  9. python打开中文文本utf-8用不了_关于Python文档读取UTF-8编码文件问题

    近来接到一个小项目,读取目标文件中每一行url,并逐个请求url,拿到想要的数据. #-*- coding:utf-8 -*- classIpUrlManager(object):def __init ...

最新文章

  1. jupyter怎么调字体_AJ里最低调的系列之一:Air Jordan 3
  2. push、pop指令
  3. 代码质量与规范,那些年你欠下的技术债
  4. 运行SSIS包的几种方式
  5. 深入Redis 主从复制原理
  6. 基于matlab的图解粒度参数计算,基于MATLAB的图解粒度参数计算-热带地理.PDF
  7. xml文件中若没有子节点,则删除文件
  8. swift 静态库、动态库
  9. 极具破坏力的Linux系统命令
  10. LeetCode刷刷记录
  11. ISO27001认证适用领域及认证流程
  12. XMPP即时通讯协议使用(前传)——协议详解
  13. 判断ssh远程命令是否执行结束
  14. markdown中插入emoji表情方法总结,让你尽情使用表情符号
  15. 【编译原理】-- 第二章(三)(文法的化简改造、无用产生式、产生式的消除、文法的其他表示方法、例题)
  16. 吴恩达深度学习课件和课后习题
  17. 钉钉考勤接口调用与OA系统数据对接
  18. Rook下快速部署ceph分布式文件系统
  19. 有限个无穷小的乘积也是无穷小
  20. excel报表导入失败问题记录

热门文章

  1. T-Sql备份还原数据库
  2. MFC:2个重载中没有一个可以转换所有参数类型
  3. 局域网在线监控设备扫描工具V1.0软件说明
  4. CentOS7搭建部署Ambari 2.6.2.0最新版(HDP-UTILS、HDP-GPL)大数据平台
  5. SpringBoot执行器端点Actuator Endpoint
  6. 关于list遍历时sychronizedList方法和synchronized同步块的线程安全问题思考
  7. 火柴 UVa11375
  8. win7系统应用程序安装不了的解决教程
  9. 谷歌浏览器怎么更新升级
  10. 正则基本知识和常用正则