19/03/30Python笔记
一.三元运算
a = 1 if (条件) else a = 2 #如果条件成立,a = 1,否则a = 2
二.文件的处理
1.读取
f = open("user.txt","r",encoding="utf-8") #utf-8解码以只读的方式打开文件
print(f.read())
f.close
r:文本模式,把二进制转换为文本
rb:b代表binary,二进制的意思,用rb模式读取的话就是以什么编码存入的就以什么编码读取出来(一般二进制用于网络传输)
当不确定以什么编码可以下载第三方模块,之后用import调用
安装
pip3 install chardet
使用chardet
import chardet
f = open("user.txt","rb") #一定以rb模式打开
data = f.read()
chardet detect(data) #按一定规则预测编码类型
2.写入(若之前存在user.txt文件,用此方法会完全覆盖)
f = open("user.txt","w",encoding="utf8") #以字符串的形式打开文件
f.write("啦啦啦")
f.close
f = open("user.txt","wb",) #如果没有user.txt文件的话,会创建一个
f.write(“啦啦啦”.encode("utf-8")) #.encode把之前的字符串转化为byte
f.close
wb二进制模式不能encoding
3.追加
f = open(“user.txt","ab")
f.write("\n啦啦啦".encode("utf-8")) #\n用于换行
f.close
f = open("user.txt","a",encoding="utf-8")
f.write("\nlalala")
f.close
注意:
f = open("user.txt","a",encoding="utf-8")
f.write("lalala")
print(f.read)
f.close
此时print出来的一定是空白,可以理解为a添加文件后,也把光标后移了,而read读取的是光标后面的内容,所以只会显示空白
4.读写模式(相当于以读的模式打开,支持写)
f = open("user.txt","r+",encoding="utf-8")
f.write("lalala")
w、a只可以写而不可以读,而r只可以读,使用r+就可以实现读写的功能,类似r和a的功能
5.写读模式(相当于以写的模式打开,支持读)
f = open("user.txt","w+",encoding="utf-8")
f.write("lalala")
和读写不同的是,会覆盖掉原来文件中的内容
6.其他功能
1)
flush() 方法是用来把文件从内存buffer(缓冲区)中强制刷新到硬盘中,同时清空缓冲区。
输入数据时,数据会先存到内存里,在buffer满时会写到硬盘中,或者关闭文件时会自动写到硬盘中,但是如果输入比较重要的字符时,需要每写一个都存到硬盘中,这样就需要用到flush()功能
2)
f.readline()
读取文件时每次只读一行
3)
seek() 方法
f.seek(offset[, whence])
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
此方法理解为可以移动光标,按字节取,比如
f = open("test.txt","r+",encoding="utf-8")
f.write("博客园")
f.seek(3) #用utf-8编码一个汉字占3个字节,f.seek(3)相当于把光标移动到了第一个字后
f.tell() #输出为3,输出当前光标的位置
注意:
f = open("test.txt","r+",encoding="utf-8")
f.write("博客园")
f.seek(2)
f.readline()
此时用readline()会报错,因为一个汉字3个字节
4)
f.truncate()
从头开始向前截取,括号参数为截取位数
19/03/30Python笔记的更多相关文章
- 19/03/17Python笔记
一.判断元素是否为数字 ".isdigit() #判断123是不是数字,是的话输出True,不是输出False 二.标志位 需要死循环时,不一定用 while True 还可以用 while ...
- 19/03/15Pyhon笔记
1.快速在python中显示目标的2进制写法 bin(342) "0b101010110" 2.一个二进制位就是一比特(bit) 3.Python2默认无法识别中文,需要加文件头 ...
- Oracle '26-2月 -19 03.34.47.000000 下午' 字符串日期解析
Oracle数据库, 时间字段是varchar2类型, 存储了 '26-2月 -19 03.34.47.000000 下午' 格式(TIMESTAMP 数据类型)的字符串日期, 将其解析为yyyy-M ...
- 乌班图docker版本18.04升级到19.03
# 关闭docker sudo systemctl stop docker # 卸载旧版本: sudo apt-get purge docker-ce # 安装新版本 sudo apt update ...
- deepin 15.11 升级docker-ce 18.01到19.03.1,升级docker compose 1.23到1.24.1
1.升级docker compose ,docker官方安装方法 $ sudo curl -L "https://github.com/docker/compose/releases/dow ...
- [RHEL8]安装Docker Problem: package docker-ce-3:19.03.6-3.el7.x86_64 requires containerd.io
系统环境 # cat /etc/redhat-release Red Hat Enterprise Linux release 8.0 (Ootpa) 安装依赖 # yum install -y yu ...
- centos 7.4 安装docker 19.03.6 版本。附带离线安装包
说明: 1.此环境为未安装过docker服务的环境, 如果已经安装,则自行卸载. 2.以下环境中上传的包及离线yum源默认为/home目录下,如无特殊说明,以此目录为准 步骤一:下载docker离线安 ...
- Centos8安装Docker提示:package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
Centos8安装Docker提示:package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but ...
- fedora30平台安装docker 19.03
一,下载docker 1,说明:docker的打包对于fedora的支持很及时, 所以在fedora 30/31上都可以直接使用官方的rpm包 下载地址: https://download.docke ...
随机推荐
- 关于MVC RouteExistingFiles疑问后续
前两天写了<关于MVC RouteExistingFiles疑问>,本来希望寻求大佬快速解答,奈何无人问津. 只能查看.NET 源代码,可以使用反编译工具(我用IL spy),也可以在线查 ...
- Linux中通过Socket文件描述符寻找连接状态介绍
针对下文的总结:socket是一种文件描述符 进程的打开文件描述符表 Linux的三个系统调用:open,socket,pipe 返回的都是一个描述符.不同的进程中,他们返回的描述符可以相同.那么,在 ...
- jQuery页面替换+php代码实现搜索后分页
HTML代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- Pandas 基础(6) - 用 replace() 函数处理不合理数据
首先, 还是新建一个 jupyter notebook, 然后引入 csv 文件(此文件我已上传到博客园): import pandas as pd import numpy as np df = p ...
- 关于ExpressionChangedAfterItHasBeenCheckedError
最近在stackoverflow上似乎每天都有一些关于angular报错‘ExpressionChangedAfterItHasBeenCheckedError’的问题.发生这些问题通常是由于angu ...
- 揭示牌面使之升序 Reveal Cards In Increasing Order
2019-03-27 14:10:37 问题描述: 问题求解: 模拟题.考虑角度是从结果来进行反推. input - [2,3,5,7,11,13,17] (just sort the input t ...
- 【分布式搜索引擎】初识Elasticsearch
一.Elasticsearch是什么? Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎. Elasticsearch是一个实时分布式搜索和分析引擎.它让你以前所未 ...
- 『Python CoolBook:heapq』数据结构和算法_heapq堆队列算法&容器排序
一.heapq堆队列算法模块 本模块实现了堆队列算法,也叫作优先级队列算法.堆队列是一棵二叉树,并且拥有这样特点,它的父节点的值小于等于任何它的子节点的值. 本模块实际上实现了一系列操作容器的方法,使 ...
- CSS中的盒子模型与 box-sizing 属性
盒子模型是css中一个重要的概念,是开发网页必须要用的布局方法.盒子模型有两种,分别是标准 w3c 盒子模型和 ie 盒子模型. 标准 w3c 盒子模型:包括 magin(外边距).border(边框 ...
- mac 不小心把管理员改成了普通用户
最近手贱,不小心把mbp仅有的管理员账号设置成了普通用户,想重新改回管理员,竟然需要用其他管理员账号去更改.简直 那个 啥 ~ 下面将提供创建一个新的管理员账号的方案 不仅适用于上述我出现的问题,也适 ...