python 处理 unicode 格式的 csv 文件

python 处理 unicode 格式的 csv 文件

好久没有写 Blog 了,文中很多信息其实没有严格查文献啦,所以会有不对的地方。
献丑了。。。

  • 前言
  • CSV 摘要简介
  • python 处理 unicode 格式的 csv 文件

前言

任务需要,需要增加一个翻译机制,提供 js 接口。
- 需要便于对接原有的翻译数据(基于 excel 表格)。
- 需要方便修改翻译。
- 至少支持 windows 和 linux 平台。

以上原因,只好采用 csv 文件格式用来进行处理。(也有想过 web 的形式,但是暂时没有找到比较好的形式)。
但是用 csv 的时候,发现 csv 的标准是非强制的,很多情况下对于 中文等多国语言兼容性不好。
研读一下 office 等软件对 csv 的处理方式,在不识别 文件编码时,会使用 unicode 格式进行解析。
最后决定采用 unicode 的 csv 文件进行翻译信息的处理。

CSV 摘要简介

  • CSV 文件是一种表格文件规范(非强制)。
  • 可以通过 ‘,’ (逗号)’ ’ (空格)‘\t’ (制表符) 分列。
  • 通过 ‘\n’‘\r’‘\r\n’ (windows) 分行。
  • 通过 Excel 等软件打开可以显示为表格的形式。

python 处理 unicode 格式的 csv 文件

# -*- coding: utf-8 -*-

import os
import shutil
import commands
import inspect
import sys
import csv
import codecs
import cStringIO

# import unicodecsv as csv

G_CHAR_NEWLINE = '\n'
G_EN_KEY_MAP = False        # True
G_EN_SHOW_SPACE = False     # True

def get_csvdata_value(csv_data_list, line_index, rows_index):
    if (line_index < len(csv_data_list) 
### Python读取和写入CSV文件的最佳实践及常用库 #### 使用`csv`标准库操作CSV文件 Python自带的`csv`模块提供了强大的功能来处理CSV文件。对于简单的场景,这个模块已经足够强大。 ```python import csv with open('example.csv', mode='r') as file: reader = csv.reader(file) for row in reader: print(row) data_to_write = [['Name', 'Age'], ['Alice', 30], ['Bob', 24]] with open('output.csv', mode='w', newline='') as file: writer = csv.writer(file) writer.writerows(data_to_write) ``` 上述代码展示了如何利用`csv`模块读取和创建新的CSV文件[^1]。 #### 利用Pandas简化复杂的数据处理流程 当面对更复杂的结构化数据时,推荐使用第三方库Pandas来进行高效的操作。它不仅能够轻松完成基本的任务,还支持更多高级特性如数据清洗、转换等。 ```python import pandas as pd # 从CSV加载DataFrame对象 df_read = pd.read_csv('input.csv') print(df_read.head()) # 创建一个新的DataFrame并将之保存到CSV中去 new_data = {'Column1': [1, 2], 'Column2': ['A', 'B']} df_write = pd.DataFrame(new_data) df_write.to_csv('result.csv', index=False) ``` 这段脚本说明了通过Pandas可以更加方便地管理表格型数据集,并且很容易实现JSON转CSV的功能[^2]。 #### 处理特殊字符编码问题 有时会遇到不同平台间存在的文本编码差异,在这种情况下应该考虑引入额外的支持工具比如`codecs`来确保兼容性: ```python import codecs with codecs.open('encoded_file.csv', encoding='utf-8-sig') as f: content = f.readlines() # 或者在写入的时候指定合适的编码方式 with codecs.open('out_encoded_file.csv', 'w', encoding='gbk') as f: f.write(some_unicode_string) ``` 这里介绍了如果要解决可能存在的中文乱码等问题,则可以通过调整文件打开模式下的参数设置达到目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值