本文主要是介绍Skr-Eric的Python课堂(二十六)——Python的文件方法、运算符优先级、异常类型和编码规范,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文件
mode 模式字符的含义
字符 | 含义 |
---|---|
'r' | 以只读方式打开(默认) |
'w' | 以只写方式打开,删除原有文件内容(如果文件不存在,则创建该文件并以只写方式打开) |
'x' | 创建一个新文件, 并以写模式打开这个文件,如果文件存在则会产生"FileExistsError"错误 |
'a' | 以只写文件打开一个文件,如果有原文件则追加到文件末尾 |
'b' | 用二进制模式打开 |
't' | 文本文件模式打开 (默认) |
'+' | 为更新内容打开一个磁盘文件 (可读可写) |
- 缺省模式是 'rt'
- 'w+b' 可以实现二进制随机读写,当打开文件时,文件内容将被清零
- 'r+b' 以二进制读和更新模式打开文件,打开文件时不会清空文件内容
- 'r+' 以文本模式读和更新模式打开文件,打开文件时不会清空文件内容
python 文件常用方法:
方法 | 说明 |
---|---|
F.close() | 关闭文件(关闭后文件不能再读写会发生ValueError错误) |
F.readline() | 读取一行数据, 如果到达文件尾则返回空行 |
F.readlines(max_chars=-1) | 返回每行字符串的列表,max_chars为最大字符(或字节)数 |
F.writelines(lines) | 将字符串的列表或字符串的列表中的内容写入文件 |
二进制文件操作方法 | |
F.read(size=-1) | 从一个文件流中最多读取size个字符(文本文件)或字节(二进制文件),如果不给出参数,则默认读取文件中全部的内容并返回 |
F.write(text) | 写一个字符串到文件流中,返回写入的字符数(文本文件)或字节数(二进制文件) |
F.tell() | 返回当前文件流读写指针的绝对位置(字节为单位) |
F.seek(offset, whence=0) | 改变数据流读写指针的位置,返回新的绝对位置 |
F.flush() | 把写入文件对象的缓存内容写入到磁盘 |
F.readable() | 判断这个文件是否可读,可读返回True,否则返回False |
F.writable() | 判断这个文件是否可写,可写返回True,否则返回False |
F.seekable() | 返回这个文件对象是否支持随机定位 |
F.truncate(pos = None) | 剪掉 自pos位置之后的数据,返回新的文件长度 |
Python运算符优先级
运算符 | 描述 |
---|---|
(), [], {key: value}, {} | 元组表达式、列表表达式、字典表达式、集合表达式 |
x[index], x[index:index], x(arguments...), x.attribute | 索引,切片, 函数调用,属性引用 |
** | 指数 (最高优先级) |
~, +, - | 按位翻转, 正号,负号 |
*, /, %, // | 乘,除,取模和地板除 |
+, - | 加法, 减法 |
>>, << | 右移, 左移运算符 |
& | 位与(AND) |
^ | 位异或(XOR) |
| | 位或(OR) |
<=, <, >, >=, ==, !=, is, is not, in, not in | 比较,身份测试,成员资格测试 |
not | 布尔非 |
and | 布尔与 |
or | 布尔或 |
if - else | 条件表达式 |
lambda | lambda表达式 |
Python全部的错误类型
错误类型 | 说明 |
---|---|
ZeroDivisionError | 除(或取模)零 (所有数据类型) |
ValueError | 传入无效的参数 |
AssertionError | 断言语句失败 |
StopIteration | 迭代器没有更多的值 |
IndexError | 序列中没有此索引(index) |
IndentationError | 缩进错误 |
OSError | 输入/输出操作失败 |
ImportError | 导入模块/对象失败 |
NameError | 未声明/初始化对象 (没有属性) |
AttributeError | 对象没有这个属性 |
GeneratorExit | 生成器(generator)发生异常来通知退出 |
TypeError | 对类型无效的操作 |
KeyboardInterrupt | 用户中断执行(通常是输入^C) |
OverflowError | 数值运算超出最大限制 |
FloatingPointError | 浮点计算错误 |
BaseException | 所有异常的基类 |
SystemExit | 解释器请求退出 |
Exception | 常规错误的基类 |
StandardError | 所有的内建标准异常的基类 |
ArithmeticError | 所有数值计算错误的基类 |
EOFError | 没有内建输入,到达EOF 标记 |
EnvironmentError | 操作系统错误的基类 |
WindowsError | 系统调用失败 |
LookupError | 无效数据查询的基类 |
KeyError | 映射中没有这个键 |
MemoryError | 内存溢出错误(对于Python 解释器不是致命的) |
UnboundLocalError | 访问未初始化的本地变量 |
ReferenceError | 弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
RuntimeError | 一般的运行时错误 |
NotImplementedError | 尚未实现的方法 |
SyntaxError Python | 语法错误 |
TabError | Tab 和空格混用 |
SystemError | 一般的解释器系统错误 |
UnicodeError | Unicode 相关的错误 |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
以下为警告类型 | |
Warning | 警告的基类 |
DeprecationWarning | 关于被弃用的特征的警告 |
FutureWarning | 关于构造将来语义会有改变的警告 |
OverflowWarning | 旧的关于自动提升为长整型(long)的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑的语法的警告 |
UserWarning | 用户代码生成的警告 |
PEP8编码规范
代码编排
- 使用4空格缩进,不使用Tab,更不允许用Tab和空格混合缩进
- 每行最大长度最大79字节,超过部分使用反斜杠折行
- 类和全局函数定义间隔两个空行,类内方法定义间隔一个空行.其它地方可以不加空行。
文档编排
- 其中import部分,又按标准、三方和自己编写顺序依次排放,之间空一行。
- 不要在一句import中导入多个模块,比如不推荐import os, sys。
- 尽可能用import XX 而不采用from XX import YY引用库,因为可能出现名字冲突。
空格的使用
- 各种右括号前不用加空格
- 逗号、冒号、分号前不要加空格。
- 函数的左括号前不要加空格。如func(1)。
- 序列的左括号前不要加空格。如list[2]。
- 操作符左右各加一个空格,不要为了对齐增加空格。
- 函数默认参数使用的赋值符左右省略空格。
- 不要将多条语句写在同一行,尽管使用‘;’允许。
- if/for/while语句中,即使执行语句只有一句,也必须另起一行
原则:避免不必要的空格
想要看更多的课程请微信关注SkrEric的编程课堂
这篇关于Skr-Eric的Python课堂(二十六)——Python的文件方法、运算符优先级、异常类型和编码规范的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!