文件的读取和写入
在程序中间我们处理的数据肯定是不止几行数据的,那么如果我们需要大量的数据的时候要怎么办呢?
这里就需要使用到我们的文件的相关操作了,文件可以存储的数据超出我们的想象,比如说我们的天气数据、文学作品、交通数据等等。每当我们需要分析或者修改存储在文件中的信息时,我们就需要将数据从文件中读取出来。然后对文件的数据进行处理,然后再写入文件中去。
文件的读取
我们想要处理数据首先是要打开文件,获取文件中的数据,open()函数为我们提供了文件打开的操作,open函数首先接受一个参数,参数是文件的路径和名称Python在当前执行的目录中查找文件的对象,在上述的程序中间,open函数返回一个a.txt的文件对象,我们用变量f来接收文件对象。
with open("a.txt") as f:
contents = f.read()
print(contents)
还可以按行读取文件内容:
filename = 'a.txt'
with open(filename) as file_object:
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
文件的写入
w方式写入文件是会覆盖前面文件的数据,a是附加模式写入,这种就不会将前面文件的内容覆盖,还有r表示文件写入后只能进行读取操作,而不能进行修改,还有一些其他的操作。write函数会在你文件存在的时候写入,如果文件不存在, 就会自动创建一个文件。
numbers = 20190730
with open("a.txt", "w") as f:
f.write()
异常
Python中间使用异常的特殊对象来管理程序执行中间出现的错误,Python程序中间出现的常见的错误类型:
异常名称 | 描述 |
---|---|
BaseException | 所有异常的基类 |
SystemExit | 解释器请求退出 |
KeyboardInterrupt | 用户中断执行(通常是输入^C) |
Exception | 常规错误的基类 |
StopIteration | 迭代器没有更多的值 |
GeneratorExit | 生成器(generator)发生异常来通知退出 |
StandardError | 所有的内建标准异常的基类 |
ArithmeticError | 所有数值计算错误的基类 |
FloatingPointError | 浮点计算错误 |
OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 除(或取模)零 (所有数据类型) |
AssertionError | 断言语句失败 |
AttributeError | 对象没有这个属性 |
EOFError | 没有内建输入,到达EOF 标记 |
EnvironmentError | 操作系统错误的基类 |
IOError | 输入/输出操作失败 |
OSError | 操作系统错误 |
WindowsError | 系统调用失败 |
ImportError | 导入模块/对象失败 |
LookupError | 无效数据查询的基类 |
IndexError | 序列中没有此索引(index) |
KeyError | 映射中没有这个键 |
MemoryError | 内存溢出错误(对于Python 解释器不是致命的) |
NameError | 未声明/初始化对象 (没有属性) |
UnboundLocalError | 访问未初始化的本地变量 |
ReferenceError | 弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
RuntimeError | 一般的运行时错误 |
NotImplementedError | 尚未实现的方法 |
SyntaxError | Python 语法错误 |
IndentationError | 缩进错误 |
TabError | Tab 和空格混用 |
SystemError | 一般的解释器系统错误 |
TypeError | 对类型无效的操作 |
ValueError | 传入无效的参数 |
UnicodeError | Unicode 相关的错误 |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
Warning | 警告的基类 |
DeprecationWarning | 关于被弃用的特征的警告 |
FutureWarning | 关于构造将来语义会有改变的警告 |
OverflowWarning | 旧的关于自动提升为长整型(long)的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑的语法的警告 |
UserWarning | 用户代码生成的警告 |
如果发现异常的时候,可能后面的程序还是应该继续运行,但是因为错误的发生,导致后面的程序不能正常的运行,所以异常的处理是非常重要的。
try…except…else模块,else模块中包含的程序是依赖try模块的程序的执行而执行的。
还有一个finally模块,是在不管是什么情况下,都要执行的部分。
try:
with open("b.txt", 'w') as f:
f.write(12345)
except Exception:
print("出现错误")
else:
print("执行成功")
finally:
print("最后,我总是在")
想要获取Python学习资料的小伙伴可以加QQ:728711576