python输入流和输出流_python读写gbk、utf-8等输入输出流
python编码问题:
所有使用python的都会遇到下面的问题:
Traceback (most recent call last):
File "amazon_test.py", line 30, in
print(s)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)
解决方法
首先,你要有个通用的环境:
locale保证
LANG=zh_CN.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
具体设置:
# ~/.bashrc中添加
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh:en_US:en
LC_ALL=en_US.UTF-8
py文件第一行一般为#!/usr/bin/env python
第二行# -*- coding: utf-8 -*- 或者# coding=utf-8
保证文件的编码为utf-8格式(有些人会把vim环境设置为gbk或者chinese,文件保存时可能会变成gbk格式,需要注意)
p.s. : vimrc设置推荐:
set encoding=utf-8 " 新创建文件格式为utf-8
set termencoding=utf-8 " 终端显示格式,把解析的字符用utf-8编码来进行显示和渲染终端屏幕
set fileencodings=utf-8,gb18030,gbk,cp936,gb2312 " 可以查看多种格式的文件
python2
解码输入流
读取文件
with open(file_path, 'r') as f:
for line in f:
line = line.decode('your_file_encoding', errors='ignore').strip()
标准输入流
for line in sys.stdin:
line = line.decode('your_file_encoding', errors='ignore').strip()
写某编码的文件
print >> sys.stdout, line.encode('gb18030', 'ignore')
# 或者用,推荐下面的方法
sys.stdout.write(line.encode('gb18030', 'ignore') + '\n')
python3
解码输入流
读取文件
with open(file_path, mode='r', encoding='gb18030', errors='ignore') as f:
for line in f: # line is unicode string
pass
标准输入流
import io
import sys
sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8')
for line in sys.stdin:
pass
import sys
sys.stdin.reconfigure(encoding='utf-8')
for line in sys.stdin:
pass
编码输出
写文件
with open(file_output, encoding='your_dest_encoding', mode='w') as f:
f.write(line)
输出流
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stdout.write(line + '\n')
python输入流和输出流_python读写gbk、utf-8等输入输出流相关推荐
- java字节输出流怎么转码_字节/字符——输入/输出流
一: 1.计算机如何存储中文的? 当前平台默认编码集 :GBK 一个中文两个字节 第一个字节:一定是负数 第二个字节:一般是负数,可能也会是正数,不会影响的结果. */ public class St ...
- java字符流输出流_JAVA语言之IO流字符串输入输出流
本文主要向大家介绍了JAVA语言之IO流字符串输入输出流,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 概述 StringReader 字符输入流 和CharArrayReader类 ...
- python csv 中文乱码_python读写csv时中文乱码问题解决办法
CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 "," 分隔的一列列的数据构成的,可以使用excel和文本编辑器等打开.CSV ...
- python 清空文件夹_python读写文件
文件读写 文件读写,是Python代码调用电脑文件的主要功能,能被用于读取和写入文本记录.音频片段.Excel文档.保存邮件以及任何保存在电脑上的东西. ①读取文件 首先,我们在桌面新建一个text文 ...
- python读取tsv文件_Python 读写 tsv
Python操作csv和excel的教程随处可见,可惜我遇到的是tsv, 然后可搜到的资料屈指可数,在经历了一番努力之后终于找到了解决方案,顺手还研究了一波文件读取,写下来记录一下. 首先上成果,伸手 ...
- python 写入第二列_python读写Excel表格的实例代码(简单实用)
这篇文章主要介绍了python读写Excel表格的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下.需要先安装两个库:pip install xlrd.pip ...
- python写配置文件方法_Python读写配置文件的方法
本文实例讲述了Python读写配置文件的方法.分享给大家供大家参考.具体分析如下: python 读写配置文件ConfigParser模块是python自带的读取配置文件的模块.通过他可以方便的读取配 ...
- python二进制写入文件_python读写二进制文件的方法
本文实例讲述了python读写二进制文件的方法.分享给大家供大家参考.具体如下: 初学python,现在要读一个二进制文件,查找doc只发现 file提供了一个read和write函数,而且读写的都是 ...
- python读conf配置文件_python读写配置文件操作示例
本文实例讲述了python读写配置文件操作.分享给大家供大家参考,具体如下: 在用编译型语言写程序的时候,很多时候用到配置文件,作为一个约定的规则,一般用 ini 文件作为配置文件,当然不是绝对的,也 ...
最新文章
- I.MX6 PLL5 clock hakcing
- Properties文件读取学习笔记
- Python之Pandas:利用pandas实现行数据添加,即将字典格式的数据,按照行数据,从头开始循环添加到dataframe中
- 洛谷 - P1989 无向图三元环计数(思维建图)
- sturts2标签判断多个条件
- python最新面试题_2018年最新Python面试题及答案
- 推翻自己和过往,重学自定义View
- javascript控制台_如何使用JavaScript控制台改善工作流程
- 使用raphael.js绘制中国地图
- wikioi 1294 全排列 dfs
- Shiro教程_2 Shiro+SpringBoot+Mysql+Redis(缓存)
- 【渝粤题库】陕西师范大学201841 比较教育学 作业(专升本)
- 明日立秋!秋季宝宝如何养肺?立秋养肺小妙招
- 微软拼音开启小鹤双拼
- 使用AhMyth入侵Android智能手机
- NYOJ1016(德莱联盟)(判断线段相交)
- ❤️❤️❤️Unity废柴看过来,手把手教你做植物大战僵尸(十四)—— 游戏胜利和失败界面
- 申请了雅虎邮箱的全新域名@yahoo.cn ID
- 股份有限公司按规定注销库存股时,对被注销库存股的账面余额超过面值总额的部分
- 有时候,感慨的人生~
热门文章
- 通过调色板(QPalette)将readonly为true的QLineEdit颜色设置为灰色
- 高中计算机计划,高中信息技术教学计划
- delimited mysql_在MySQL中存儲逗號分隔的數據
- IOS 6 之后 Required background modes
- layoutSubviews什么时候触发调用
- 实用代码---取得当前的年月日,当前的时分秒获得,周几和星期几获得
- c语言形参指针 实参数组,《C语言程序设计》中的指针形参和函数体中数组实参问题的教学研究.pdf...
- shell编写mysql启动脚本文件夹_linux 编写一个shell脚本文件,实现以下功能
- 什么?你竟然还没有用这几个chrome插件?
- [嵌入式][分享][交流]发布一个消息地图的模块