with open使用方法
来源:互联网 发布:js div display none 编辑:程序博客网 时间:2024/06/10 04:52
昨晚在级群有个同学提出一个问题需要去读文件每一行的倒数18个字符并写到另一个文件中,一开始以为用Python三行代码应该能够解决,但写了二十分钟才真正解决问题。
首先需要知道的是要使用到两个模块。codecs和chardet
完整代码如下:(把text.txt中需要的字符串读取到text2.txt中)
import codecsimport chardetwith open(r'D:\py\text.txt','rb') as f1: charset = chardet.detect(f1.read())with codecs.open(r'D:\py\text.txt','r',charset['encoding']) as f1,codecs.open(r'D:\py\text2.txt','w','utf-8')as f2: for line in f1.readlines(): f2.write(line[-18:])codecs的使用方法参考代码。
with.codecs.open()与with open()这两种方法使用环境不一样,其中第一种是可以定义读文件时候的编码方式。(每个txt文件都有对应的一个编码方式)
而要获取文件的编码方式需要借助chardet模块(这个模块好像要自行安装,之前我曾经安装过,所以我没有提示要安装)
chardet.detect()返回的是一个字典格式。
{'confidence': 1.0, 'language': '', 'encoding': 'UTF-16'} 这是我的text.txt返回的字典
其中第一个键值是可能性,第二个键值是编码方式。字典内容说明这个文件的编码方式以及该可能性大小。
最后说明一下with open的使用格式。
with open(’文件名‘,‘读写方式’)as f: f.read() #读取是整个文件 f.readline() #读取第一行 f.readlines() #读取每一行,可以结合for使用(参考我上述完整代码),记得都要带方法都要带括号,不然返回的是内存地址
还有,Python有回收机制,f.close()在程序结束时候会调用(在callback回调函数里面??)
最后参考了一些网上大神的帖子。http://www.cnblogs.com/ArsenalfanInECNU/p/4811643.html(编码方式)
阅读全文
0 0
- with open使用方法
- window.open的使用方法
- window.open()使用方法
- window.open使用方法
- open flash chart 使用方法
- window.open 使用方法总结
- window.open的使用方法
- open URL 的使用方法
- 显示“Open With”对话框
- python with open
- Python With Open
- Python with open语句
- Open popup window with open.window method
- JavaScript with语句使用方法
- window.open的使用方法总结
- open fdopen fread fwrite使用方法
- Loving with an Open Hand
- Finding open files with lsof
- VScode常用插件
- 文章标题
- 目前自身欠缺的技能
- 日历和EWS在Exchange
- 盘点:U盘损坏后如何修复的五种状况和解决方法
- with open使用方法
- Android与NativeC传递数据不正确问题
- babel从入门到入门
- Linux命令学习
- JVM源码分析之javaagent原理完全解读
- Pingback漏洞利用技术
- 在 centos上安装ceph与openstack集成
- 【华为】删数
- 数据结构——B-tree(多路搜索树)