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中的几种常见的数据类型
Feb 10 Python
TensorFlow实现卷积神经网络
May 24 Python
Django2.1.3 中间件使用详解
Nov 26 Python
Python爬虫之UserAgent的使用实例
Feb 21 Python
Python实现操纵控制windows注册表的方法分析
May 24 Python
Python中那些 Pythonic的写法详解
Jul 02 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
python装饰器使用实例详解
Dec 14 Python
python通过移动端访问查看电脑界面
Jan 06 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
Pycharm的Available Packages为空的解决方法
Sep 18 Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 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
discuz安全提问算法
2007/06/06 PHP
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
php使用session二维数组实例
2014/11/06 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
js表格分页实现代码
2009/09/18 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
Node.js文件操作详解
2014/08/16 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
python读取与写入csv格式文件的示例代码
2017/12/16 Python
Django Rest framework频率原理与限制
2019/07/26 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
Python 硬币兑换问题
2019/07/29 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
班组长工作职责
2013/12/25 职场文书
安全生产标语大全
2014/10/06 职场文书
我的中国梦主题班会
2015/08/14 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL