笨办法学python17 更多文件操作

这个习题我们将学习到文件操作的另外一个库 os.path和一个新命令:exists(这个命令将文件名称作为参数,如果文件存在返回True,如果不存在返回False.同时新建此文件)。

另外通过这个习题,我们对文件的读取、写入会有更深的理解。

代码如下:

#-*-coding:utf-8-*-
from sys import argv
from os.path import exists

script , from_file , to_file = argv

print"Copy from %s to %s"%(from_file , to_file)

#we coule do these two on line too ,how?
in_file = open(from_file)
indata = in_file.read()
#以上两句可以写成一句:indata = open(from_file).read()

print"The input file is %d byte long" %len(indata)

print"Does the output file exist? %r" %exists(to_file)

print"Ready,Hit RETURN to continue,CTRL-C to abort."
raw_input()

out_file = open(to_file , 'w')
out_file.write(indata)

print"Alright,all done."

out_file.close()
in_file.close()
print"The contents of to_file is %r" %open(to_file).read()

在运行这个习题时,需要明确两点:

1,open输入时参数,返回的是object。所以如果open()括号里面的内容不是文件名,而是对象时,运行会报错
比如mark黄色部分若改为:
print"The contents of to_file is %r" %open(out_file).read()
报错信息如下:
print"The contents of to_file is %r" %open(out_file).read()
TypeError: coercing to Unicode: need string or buffer, file found
2,read是对象的方法,所以其必须跟在一个对象的后面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值