最近学习效率很低,居然还开始熬夜玩耍了。好好干啊,技术差就要多付出啊。

操作模式
选择操作模式

读写文本文件

1.读取

import timedef main():f = Nonetry:# 一次性读取整个文件内容print('# 一次性读取整个文件内容')with open('beatbox.txt', 'r', encoding='utf-8') as f:print(f.read())# 通过for-in循环逐行读取print('# 通过for-in循环逐行读取')with open('beatbox.txt', 'r') as f:for line in f:print(line, end='')time.sleep(0.5)# 读取文件按行读取到列表中print('# 读取文件按行读取到列表中')with open('beatbox.txt', 'r') as f:lines = f.readlines()print(lines)except FileNotFoundError:print('Can not open file.')except LookupError:print('Specify unknow encoding.')  # 指定未知编码except UnicodeDecodeError:print('Reading file decoding failed.')  # 读取文件时解码错误finally:if f:f.close()if __name__ == '__main__':main()

结果:

# 一次性读取整个文件内容
Beatbox is fun.
You can do it.
# 通过for-in循环逐行读取
Beatbox is fun.
You can do it.# 读取文件按行读取到列表中
['Beatbox is fun.n', 'You can do it.']

2.写入

from math import sqrtdef is_prime(n):"""判断素数的函数"""assert n > 0  # if not n > 0: raise AssertionError()for factor in range(2, int(sqrt(n)) + 1):if n % factor == 0:return Falsereturn True if n != 1 else Falsedef main():filenames = ('a.txt', 'b.txt', 'c.txt')fs_list = []try:for filename in filenames:fs_list.append(open(filename, 'w', encoding='utf-8'))for number in range(1, 10000):if is_prime(number):if number < 100:fs_list[0].write(str(number) + 'n')elif number < 1000:fs_list[1].write(str(number) + 'n')else:fs_list[2].write(str(number) + 'n')except IOError as ex:print(ex)print('写文件时发生错误!')finally:for fs in fs_list:fs.close()print('操作完成!')if __name__ == '__main__':main()

读写二进制文件

# 读写二进制文件
def main():try:with open('test1.png', 'rb') as f1:data = f1.read()print(type(data))with open('test2.png', 'wb') as f2:f2.write(data)except FileNotFoundError as e:print('指定文件无法打开。')except IOError as e:print('读写文件出现错误。')finally:print('程序执行结束')if __name__ == '__main__':main()

读写JSON(JavaScript Object Notation(符号))文件

Json与Python数据类型对比

dump<->load

dumps<->loads

异常捕获处理

参考资料:[异常捕获处理](https://segmentfault.com/a/1190000007736783)

被动捕获:try...except...finally

主动捕获:raise

使用内置语句范式替代try/exceptxiao

# 使用内置的语法范式代替try/except
# for循环处理了StopIteration异常## should not
# 1.
try:f = open('a.txt')print(f.read())
except IOError as e:print(e)
finally:print('done')
# 2.
class Test:name = 0
try:test = Test()name = test.name  # 不确定我能不能得到name属性
except AttributeError:name = 'default'## should
# 1`.
with open('a.txt') as f:print(f.read())
# 2.
test = Test()
name = getattr(test, 'name', 'default')

小贴士:
1.只处理你知道的异常,避免捕获所有异常然后吞掉它们。
2.抛出的异常应该说明原因,有时候你知道异常类型也猜不出所以然。
3.避免在catch语句块中干一些没意义的事情,捕获异常也是需要成本的。
4.不要使用异常来控制流程,那样你的程序会无比难懂和难维护。
5.如果有需要,切记使用finally来释放资源。
6.如果有需要,请不要忘记在处理异常后做清理工作或者回滚操作。

java逐行读取文件内容执行sql语句_[11/100] 文件和异常相关推荐

  1. Java 技术篇 - java同时连接多种数据库执行sql语句的兼容性验证,数据库类型包括:oracle、sqlserver、DB2、人大金仓、达梦、PG、瀚高、polardb

    Java 操作多类型数据库下的兼容性验证 第一章:数据库测试 ①[ oracle 数据库不支持分号]ORA-00933: SQL 命令未正确结束 ② [sqlserver 数据库不支持 commit] ...

  2. toad for oracle如何执行sql文件,toad执行sql语句

    在toad中执行sql语句与sqlplus中存在一点细小的区别,就是在每个sql的后面包括一个空格. CREATE TABLE test_wy(NAME VARCHAR2(20)); ALTER TA ...

  3. 执行SQL语句的时候唯一约束字段异常Duplicate entry '33382-1-0' for key xxx

    前言:做项目的时候,执行SQL语句报了Duplicate entry '33382-1-0' for key xxx异常,后来发现是唯一约束导致,于是乎一通谷歌百度,后来解决了,记录一下. 正文: 代 ...

  4. shell逐行读取excel并执行sql

    项目场景: 项目场景:测试想根据一组id 获取name做测试,由于各种原因(数据量大,sql语句复杂),只能根据id一条条查,于是写了个脚本: 解决方案一: 先查询需要的id 导出到user_id.c ...

  5. mybatisplus执行sql语句_一条更新的SQL语句是如何执行的?

    提出问题 UPDATE student SET score = score + 1 WHERE uid = 666; 以上就是一条最简单的SQL更新语句,想要知道上面这句SQL语句是怎么执行的先要了解 ...

  6. mybatisplus执行sql语句_[MySQL]sql语句的执行流程

    此篇极客时间专栏<MySQL实战45讲>笔记,文中部分图文来自该专栏. MySQL的执行流程示意图: 大体来说,MySQL可以分为Server层和存储引擎层两部分. Server层包括连接 ...

  7. 执行sql语句_一条SQL查询语句是如何执行的?

    本篇文章将通过一条 SQL 的执行过程来介绍 MySQL 的基础架构. 首先有一个 user_info 表,表里有一个 id 字段,执行下面这条查询语句: select * from user_inf ...

  8. sqlserver 查询某个时间段执行sql语句_为什么 SQL 查询不是先执行SELECT语句?

    作者:Julia Evans    译者:无明    链接:infoq.cn/article/Oke8hgilga3PTZ3gWvbg 很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟别 ...

  9. beeline执行sql语句_由“Beeline连接HiveServer2后如何使用指定的队列(Yarn)运行Hive SQL语句”引发的一系列思考...

    背景 我们使用的HiveServer2的版本为0.13.1-cdh5.3.2,目前的任务使用Hive SQL构建,分为两种类型:手动任务(临时分析需求).调度任务(常规分析需求),两者均通过我们的We ...

最新文章

  1. CAPSNET:具有自我注意路由的胶囊网络
  2. python使用matplotlib可视化、使用matplotlib可视化scipy.misc图像、自定义使用grey灰色映射、将不同亮度映射到不同的色彩、并添加颜色标尺
  3. linux 下 php 安装 Gearman
  4. 如何在Git历史记录中grep(搜索)已提交的代码
  5. arm-linux交叉编译工具链的制作(基于S3C2440)【转】
  6. Linux内核--内核地址空间分布和进程地址空间
  7. C++string中find_first_not_of()函数和find_last_not_of()函数
  8. 【转】[教程] CSS入门3:如何插入CSS样式
  9. Typora列表段落(list paragraph)的行间距
  10. 各种编程技术中的$符的使用
  11. python网络爬虫系列教程——python中lxml库应用全解(xpath表达式)
  12. Retrofit(Okhttp)Dns解析服务器域名异常时尝试使用服务器IP访问
  13. android系统已停止运用,安卓系统平板电脑启动器停止运行处理方法(文/明)
  14. 7-zip比较丑的图标修改
  15. ubuntu18.04桌面美化
  16. 计算机五大核心部分详解、计算机三大核心硬件、操作系统简介、编程与编程语言、python解释器简介
  17. python爬虫(20)使用真实浏览器打开网页的两种方法
  18. 过等保是什么意思?能简单解释下吗?
  19. makex机器人程序_MakeX总决赛现场参赛选手在进行机器人编程
  20. 群晖Docker 安装Jellyfin提示“操作超时解决方法

热门文章

  1. 安装brew_MacBook Pro安装Homebrew慢的问题解决方案
  2. python 复制文件并重命名_潘石屹都开始学Python了,你还有什么理由放弃?
  3. servlet到mysql_在servlet中搜索代码到mysql?
  4. mysql workbench企业_甲骨文发布MySQL Workbench 6.0版本
  5. mysql mysqld.log_MySQL mysqlbinlog 读取mysql-bin文件出错
  6. Python+OpenCV:对极几何(Epipolar Geometry)
  7. Python Imaging Library: ImageFilter Module(图像滤波模块)
  8. 使用 Zabbix 监控 Jenkins
  9. 专有网络VPC搭建FTP站点
  10. vue之initComputed模块源码说明