##练习: 复制文件
def read_file():
try:
f = open('d:\ip1.log','r')
f_copy = open('d:\ip2.log','a')
try:
while True:
s = f.readline()
if not s:
break
f_copy.write(str(s))
finally:
f_copy.close()
f.close()
print("文件已关闭")
except IOError:
print("文件打开失败")
read_file()
print("programing end!")
##练习: 复制文件--与上面等效
# with语句
# 语法: with 表达式1 [as variables 1], 表达式2 [as 变量名2], ...
# 作用: 对于资源访问的场合,确保使用过程中,不管是否发生异常,都会执行必要的清理操作,并释放资源;
# 如, 文件的打开关闭、线程中所的自动获取和释放,键盘鼠标等共享设备
# with 语句和try-finally 相似,无论异常与否都会释放资源, as子句用于绑定表达式创建的对象
def copy_file(file_source, file_target):
try:
with open(file_source,'rb') as f, open(file_target,'ab') as f_copy:
while True:
s = f.read(4096)
if not s:
break
f_copy.write(s)
print("文件复制成功")
except:
print("文件复制失败")
def main():
file_source = input('请输入源文件:')
file_target = input('请输入目标文件:')
copy_file(file_source,file_target)
print("programing end!")
main()