普通文件读写方案
在一般语言的文件读写中,java或是c#,读写操作都是按照以下逻辑:
- 创建连接对象
- 循环读取(或写入)
- 关闭连接
除了正常流程以外,起码要考虑两件事:第一,考虑文件是否存在、是否会发生I/O错误,需要去捕获异常;第二,考虑系统缓冲区刷新问题,需要去手动flush()和关闭文件流。
所以,使用以上思路去用python复制一个文件,最简单也需要以下代码:
try:
read = open('C:/gogogo/DataSyncClient.java', 'r')
write = open('C:/gogogo/DataSyncClientCopy.java', 'w')
for line in read.readlines():
write.write(line)
except Exception as e:
print('error:', e)
finally:
if read:
read.close()
if write:
write.close()
Python提供的读写方案
Python提供了一种捷径,使用with语法便可以做到统筹兼顾,直接上代码:
with open('C:/gogogo/DataSyncClient.java', 'r') as f:
with open('C:/gogogo/DataSyncClient3.java', 'w') as w:
for line in f.readlines():
print(line)
w.write(line.strip())
以上做法将读和写糅合了起来,完全可以分开来使用。
小结:
对文件读写来说使用with语法非常方便,包含了try…except..finally又帮助程序自动刷新缓冲区、关闭文件流。大大降低了代码量。
记录于2017年8月14日20:51:28,辉煌时代