Python 包含汉字的文件读写之每行末尾加上特定字符


Posted in Python onDecember 12, 2016

      最近,接手的项目里,提供的数据文件格式简直让人看不下去,使用pandas打不开,一直是io error.仔细查看,发现文件中很多行数据是以"结尾,然而其他行缺失,因而需求也就很明显了:判断每行的结尾是否有",没有的话,加上就好了。

采用倒叙的方式好了,毕竟很多人需要的只是一个快速的解决方案,而不是一个why. 解决方案如下:

b = open('b_file.txt', w)
 with open('a_file.txt', 'r') as lines:
  for line in lines:
   line = line.strip()
   if not line.endswith(r'"'):
    line += r'"'
   line += '\n'
   b.write(line) 
 b.close()
 a.close()

其中整个过程的关键在于

line = line.strip()

之前我偷懒,直接使用省去了上面那行,结果在判断条件栽了跟头,程序认为每一行都不是以"结尾:

if not line.endswith(r'"')

硬着头皮试上去,重写:

for line in open(data_path+'heheda.txt', 'r'):
 if not line[-2] == r'"':
  print line
  line = line[:-1] + r'"' + line[-1:]
  print line

      此时判断条件为 if not line[-2] == r'"',这样才能得到除最后一行之外的正确结果。众所周知的原因,在windows系统中,文件的回车符是"\r\n",因而,在没有strip()处理好回车符的时候,需要手动在每一行的结尾前移一个字节进行判断每行的末尾。而对于文件的最后一行,一般情况下不是回车符作为结尾,毕竟不要换行了嘛。因而line[-2]则定位到了最后一个汉字的中间,将\xx\xx,硬写成了\xx"\xx,使得最后一个字显示错误。

以上所述是小编给大家介绍的Python 包含汉字的文件读写之每行末尾加上特定字符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python实现马耳可夫链算法实例分析
May 20 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
python非递归全排列实现方法
Apr 10 Python
python 定时修改数据库的示例代码
Apr 08 Python
Django rest framework实现分页的示例
May 24 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
PyCharm刷新项目(文件)目录的实现
Feb 14 Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 Python
基于FME使用Python过程图解
May 13 Python
详解Python IO口多路复用
Jun 17 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 Python
利用python进行数据加载
Jun 20 Python
详解python3百度指数抓取实例
Dec 12 #Python
python实现多线程抓取知乎用户
Dec 12 #Python
浅谈Python类里的__init__方法函数,Python类的构造函数
Dec 10 #Python
详解常用查找数据结构及算法(Python实现)
Dec 09 #Python
详解Python装饰器由浅入深
Dec 09 #Python
python利用正则表达式提取字符串
Dec 08 #Python
基于python的七种经典排序算法(推荐)
Dec 08 #Python
You might like
MVC模式的PHP实现
2006/10/09 PHP
其他功能
2006/10/09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
Python去除字符串两端空格的方法
2015/05/21 Python
浅谈Python单向链表的实现
2015/12/24 Python
Python 爬虫的工具列表大全
2016/01/31 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
提高python代码运行效率的一些建议
2020/09/29 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
实习心得体会
2014/01/02 职场文书
班干部演讲稿
2014/04/24 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
党员年终个人总结
2015/02/14 职场文书
出纳试用期自我评价
2015/03/10 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server