一.三元运算

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笔记的更多相关文章

  1. 19/03/17Python笔记

    一.判断元素是否为数字 ".isdigit() #判断123是不是数字,是的话输出True,不是输出False 二.标志位 需要死循环时,不一定用 while True 还可以用 while ...

  2. 19/03/15Pyhon笔记

    1.快速在python中显示目标的2进制写法 bin(342) "0b101010110" 2.一个二进制位就是一比特(bit) 3.Python2默认无法识别中文,需要加文件头 ...

  3. Oracle '26-2月 -19 03.34.47.000000 下午' 字符串日期解析

    Oracle数据库, 时间字段是varchar2类型, 存储了 '26-2月 -19 03.34.47.000000 下午' 格式(TIMESTAMP 数据类型)的字符串日期, 将其解析为yyyy-M ...

  4. 乌班图docker版本18.04升级到19.03

    # 关闭docker sudo systemctl stop docker # 卸载旧版本: sudo apt-get purge docker-ce # 安装新版本 sudo apt update ...

  5. 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 ...

  6. [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 ...

  7. centos 7.4 安装docker 19.03.6 版本。附带离线安装包

    说明: 1.此环境为未安装过docker服务的环境, 如果已经安装,则自行卸载. 2.以下环境中上传的包及离线yum源默认为/home目录下,如无特殊说明,以此目录为准 步骤一:下载docker离线安 ...

  8. 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 ...

  9. fedora30平台安装docker 19.03

    一,下载docker 1,说明:docker的打包对于fedora的支持很及时, 所以在fedora 30/31上都可以直接使用官方的rpm包 下载地址: https://download.docke ...

随机推荐

  1. SpringCloud学习2-Springboot监控模块(actuator)

    前言 学习一项新技术最大的困难是什么? 是资料.让人高兴的是找到了一本系统学习Spring Cloud的教程,<Spring Cloud微服务实战>, 接下来的学习目标将以此书顺序演进. ...

  2. 【2.0】使用默认日志slf4j配置

    一.SpringBoot日志简介 SpringBoot使用Commons Logging进行所有内部日志记录,但底层日志实现保持开放状态.为Java Util Logging,Log4j2和Logba ...

  3. 论文笔记:Visual Semantic Navigation Using Scene Priors

    Visual Semantic Navigation Using Scene Priors 2018-10-21 19:39:26 Paper:  https://arxiv.org/pdf/1810 ...

  4. python 简单的串口收发数据

    # -*- coding: utf- -*- import serial #打开串口 serialPort="COM3" #串口 baudRate= #波特率 ser=serial ...

  5. leecode第一百六十题(相交链表)

    /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...

  6. 字符串转换整数 (atoi)

    题目: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则将该 ...

  7. 【Java】【9】String Date Calendar之间的转换

    前言: 1, Calendar 转化 String 2, Calendar 转化 Date 3,Date 转化 String 4,Date 转化 Calendar 5,String 转化 Calend ...

  8. ECharts4简单入门

    参考:echarts3 使用总结    echarts3使用总结2 最近在leader的忽悠下开始接触echarts,的确被它丰富的图表样式吸引了,现写入门教程如下: 官方入门教程参考: EChart ...

  9. CloudStack学习-1

    环境准备 实验使用的虚拟机配置 Vmware Workstation 虚拟机系统2个 系统版本:centos6.6 x86_64 内存:4GB 网络:两台机器都是nat 磁盘:装完系统后额外添加个50 ...

  10. C++使用: C++中map的基本操作和用法

    在阅读SSD代码中发现作者使用了C++中的map方法,因此搜索该关联式容器的使用方法,在这里一并总结. 一.Map 簡介 Map是STL的一個容器,它提供一對一的hash. 第一個可以稱為關鍵字(ke ...