文件操作 - 三元运算/chardet/文件操作r w/文件的操作方法
Alex:读书可以改变一个人的气质
读书:豆瓣; 1年读20本
你的问题:想法太多,读书太少
书:追风筝的人,白鹿原
电影:阿甘正传 辛德勒名单
-------------------------------------------
1.三元运算 = 三目运算
>>> a = 2
>>> b = 5
>>> val = a if a < b else b
>>> val
2
-------------------------------------------
2.文件处理:
找到 打开 读 修改 保存 关闭
f = open(file='D:/**.txt',mode='r',encoding='utf-8') //只读
data = f.read()
f.close()
mode='r' encoding='utf-8' #表示 只读 硬盘上的0101按照utf-8的规则去‘断句’,再将断句后的每一段0101转换成Unicode的01010,Unicode对照表中0101和字符的对应关系。
mode='rb' # 以什么形式存的就以什么形式读 二进制打开 不是给人看的给机器看的 视频 图片 网络传输用的
-----------------------
3.chardet:
问:加入不知道你要处理的文件是什么编码怎么办?用第三方的模块 pip3 install chardet
安装第三方的共工具箱 chardet 检测字符编码
pip3 install chardet //python的chardet的模块安装 C:\Users\bj\AppData\Local\Programs\Python\Python36\Scripts 下面 输入pip3 install chardet
import chardet
f = open(file='联系方式.txt',mode='rb')
data=f.read()
print(data)
---->: b'alex 1233\njack 1243\nrain afd\n\xd6\xd0\xb9\xfa\n\xc3\xc0\xb9\xfa'
f.close()
result = chardet.detect(data)
print(result)
----> {'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
print(data.decode('gb2312'))
alex 1233
jack 1243
rain afd
中国
美国
------------------------
4.边读边操作文件
model='r/rb' #整个文件 一次性读到内存中
边读边处理;一点一点读 循环读
f = open('联系方式.txt', mode='r', encoding='gb2312')
for line in f
print(line)
f.close()
-------------------------
5.model = 'w/wb' 创建在写 如果之前同名有文件,就清空了再重写
f = open('联系.txt','w',encoding='utf-8')
f.write("路飞学城")
f.close()
f = open('兼职1.txt', 'wb')
f.write("好孩子1".encode("gbk"))
f.close()
-------------------------
6.追加模式操作文件model='a/ab'
f = open('兼职2.txt','a',encoding='gbk')
f.write("\nalice\nalex")
f.close()
f = open('兼职2.txt','ab')
f.write("\nhello\nworld".encode("gbk"))
f.close()
-------------------------
7.model='r+'读写模式 先读后写 支持往后追加
f = open("联系方式.txt",'r+',encoding='gbk')
print('content:',f.read())
f.write('\nnew 1哈哈')
f.write('\nnew 2哈哈')
print('newcontnet:',f.read()) #因为读文件的光标到了最后
f.close()
-------------------------
8.model='w+'写读模式 以写的模式打开 支持你读 创建了文件,写东西 一般不用
f = open("联系方式.txt",'w+',encoding='gbk')
data = f.read()
print(data)
f.write('\nnew a')
f.write('\nnew b')
f.write('\nnew c')
print('new:',f.read())
f.close()
------------------------
9.文件的其他操作方法:
fileno() 返回文件句柄在内核中的索引值
flush() 把文件从内存buffer里强制刷新到硬盘
readline() 只读一行 遇到\r or \n为止
tell() 返回当前文件操作光标位置 按字节算的
seek(0) 把操作文件的光标移动到指定位置 按字节算的
read(1) 读几个字符 按字节算的
readable() 判断是否可读
seekable() 判断文件是否可进行seek操作
writeable()判断文件是否可写
truncate(6) 按指定定长度截断文件 r+模式 从当前位置往后截断
-------------------------
10.文件修改功能 - 数据被覆盖
# 数据被覆盖 不是往后移 硬盘存储的原理造成的
# word 为什么可以呢 文件全部加载到内存 改完之后在重新写回去
# 如果文件特别大 会把内存撑爆
# 边读边写 一点一点 读到内存 在写回新文件
f = open("联系2.txt", 'r+', encoding='gbk')
f.seek(2)
f.write("我们")
f.close()
-------------------------
11.文件修改占硬盘 - 数据被修改
import os
f_name = '联系方式.txt'
f_new_name = '联系方式new.txt'
old_str = '学诚'
new_str = '大学城大学城'
f = open(f_name, 'r+', encoding='gbk')
f_new = open(f_new_name, 'w', encoding='gbk')
for line in f:
if old_str in line:
line = line.replace(old_str,new_str)
f_new.write(line)
f.close()
f_new.close()
# os.rename(f_new_name,f_name)
os.replace(f_new_name, f_name)
-----------------------------------------------------------------------
总结:
1.三元运算
2.model = 'r/rb'
3.chardet
4.边读边操作文件 s
5.model = 'w/wb'
6.model='a/ab'
7.model='r+'
8.model='w+'
9.文件的其他操作方法
10.文件修改功能
文件操作 - 三元运算/chardet/文件操作r w/文件的操作方法的更多相关文章
- 第三天 函数 三元运算 lambda表达式 内置函数 文件操作
面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...
- Python之路第三天,基础(3)-set,函数,内置函数,文件,三元运算,lambda
set集合 集合是一个无序的,不重复的元素集合. 集合的创建: name_set = {'tom','jerry','alex','rose'} 或 name_set = set(['tom','je ...
- 文件操作符|-e|-M|-s|-A|_|-r -w $filename|stat|localtime|&|>>|<<
TTY:终端是一种字符型设备,它有多种类型,通常使用tty 来简称各种类型的终端设备 #!/usr/bin/perl use strict; use warnings; print "exi ...
- python文件读写模式 --- r,w,a,r+,w+,a+,rb,wb
要了解文件读写模式,需要了解几种模式的区别,以及对应指针 r : 读取文件,若文件不存在则会报错 w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件 a : 写入文件,若文件不存在则会先创建再 ...
- Android——Android studio项目中如何查看R.java文件(转)
Android Studio 是Google推出的一个Android开发环境,它集成了Android 开发工具用于开发和调试,类似 Eclipse ADT.Google公司停止对eclipse的后续支 ...
- python基础:python循环、三元运算、字典、文件操作
目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执 ...
- python3 文件操作练习 r+ w+ a+ 的理解
突然来一句:“慨然有经略四方之志” 文件操作三部曲:1.先用open打开 2.再写关闭 3.再回到中间写操作 为啥要刚打开就关闭 那是很容易望,所以先写上... 基本格式 f = open( ...
- python文件操作r+,w+,a+,rb+,
w:以写方式打开, a:以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+:以读写模式打开 w+:以读写模式打开 (参见 w ) a+:以读写模式打开 (参见 a ) rb:以二进制读模式 ...
- R语言文件相关的操作
1. 文件系统介绍 R语言对文件系统的操作,包括文件操作和目录操作,函数API都定义在base包中. 2. 目录操作 2.1 查看目录 查看当前目录下的子目录. # 启动R程序 ~ R # 当前的目录 ...
随机推荐
- AES_CBC_PKCS5Padding 加密
在项目中需要对一些关键信息进行传输,但又不能是明文,所以采用此种方式进行加密,另一端再进行解密. AES: 算法 CBC: 模式 使用CBC模式,需要一个向量iv,可增加加密算法的强度 PKCS5 ...
- 河南省第七届ACM程序设计大赛赛后总结
我们学校ACM集训开始于4月5号(清明节),5月25日在郑州解放军信息工程大学举办,集训耗时50天,但是感觉效果还行,但是也不是太好:我们也已经尽力了,虽然说只拿了个银牌,每份收获的背后,都会有辛勤的 ...
- JQuery File Upload 插件 出现 “empty file upload result” 错误的解决方案。
本例中采用的是 JQuery File Upload + ASP.NET 的方式, Google了大半天基本没有找到合理的解决方案,倒是在 NodeJS的一遍博客中找到了灵感:http://www.i ...
- Oracle Tuning 总括
oracle tuning 分为3个阶段 1. application 调优阶段, 包括设计的调优, SQL语句调优, 管理权限等内容, (这部分是我的重点) (调优人员 application de ...
- css3 图片 悬停效果
纯css实现 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...
- 第一百五十六节,封装库--JavaScript,延迟加载
封装库--JavaScript,延迟加载 延迟加载的好处,就是在浏览器视窗外的图片,不加载,拖动鼠标到浏览器视窗内后加载,用户不看的图片就不用加载,可以减少服务器大量流量 将图片的src地址用一张统一 ...
- 【BZOJ】3203: [Sdoi2013]保护出题人(几何+三分+特殊的技巧)
http://www.lydsy.com/JudgeOnline/problem.php?id=3203 wa无数次QAQ,犯sb错....一是数组没有引用...二是输出转成了int(越界了sad). ...
- Jafka Broker代码阅读之总览
从本文开始,笔者将尝试从源码角度解读Jafka(Kafka)的特性,探究其背后的实现原理与技术.前面讲解Jafka Broker的文章中有提到下面这段启动服务端的代码,我们就从这里开始. Proper ...
- django form POST方法提交表达
之前就着手开始尝试用django来简化web开发的流程周期,果不其然,速度还行,当然前期的产品那就相当粗糙了.举例来说,就连最基本的登录都是抄别人的,最可怕的是用GET方法提交表单,今天就尝试解决这个 ...
- Windows下通过Composer安装Yii2
安装好大于5.4或更高版本的PHP环境并开启openssl扩展.如果是Apache服务器,加载Apache的mod_ssl模块. 下载Composer并安装. 开始->运行[或者WIN+R]-& ...