习题 17: 更多文件操作?

现在让我们再学习几种文件操作。我们将编写一个 Python 脚本,将一个文件中的内容拷贝到另外一个文件中。这个脚本很短,不过它会让你对于文件操作有更多的了解。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from sys import argv
from os.path import exists

script, from_file, to_file = argv

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

# we could do these two on one line too, how?
input = open(from_file)
indata = input.read()

print "The input file is %d bytes 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()

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

print "Alright, all done."

output.close()
input.close()

你应该很快注意到了我们 import 了又一个很好用的命令 exists。这个命令将文件名字符串作为参数,如果文件存在的话,它将返回 True,否则将返回 False。在本书的下半部分,我们将使用这个函数做很多的事情,不过现在你应该学会怎样通过 import 调用它。

通过使用 import ,你可以在自己代码中直接使用其他更厉害的(通常是这样,不过也不 尽然)程序员写的大量免费代码,这样你就不需要重写一遍了。

你应该看到的结果?

和你前面写的脚本一样,运行该脚本需要两个参数,一个是待拷贝的文件,一个是要拷贝至的文件。如果我们使用以前的 test.txt 我们将看到如下的结果:

$ python ex17.py test.txt copied.txt
Copying from test.txt to copied.txt
The input file is 81 bytes long
Does the output file exist? False
Ready, hit RETURN to continue, CTRL-C to abort.

Alright, all done.

$ cat copied.txt
To all the people out there.
I say I don't like my hair.
I need to shave it off.
$

该命令对于任何文件都应该是有效的。试试操作一些别的文件看看结果。不过小心别把你的重要文件给弄坏了。

Warning

你看到我用 cat 这个命令了吧?它只能在 Linux 和 OSX 下面使用,使用 Windows 的就只好跟你说声抱歉了。

加分习题?

  1. 再多读读和 import 相关的材料,将 python 运行起来,试试这一条命令。试着看看自己能不能摸出点门道,当然了,即使弄不明白也没关系。
  2. 这个脚本 实在是 有点烦人。没必要在拷贝之前问一遍把,没必要在屏幕上输出那么多东西。试着删掉脚本的一些功能,让它使用起来更加友好。
  3. 看看你能把这个脚本改多短,我可以把它写成一行。
  4. 我使用了一个叫 cat 的东西,这个古老的命令的用处是将两个文件“连接(con*cat*enate)”到一起,不过实际上它最大的用途是打印文件内容到屏幕上。你可以通过 man cat 命令了解到更多信息。
  5. 使用 Windows 的同学,你们可以给自己找一个 cat 的替代品。关于 man 的东西就别想太多了,Windows 下没这个命令。
  6. 找出为什么你需要在代码中写 output.close()

Project Versions

Table Of Contents

Previous topic

习题 16: 读写文件

Next topic

习题 18: 命名、变量、代码、函数

This Page

时时彩二字合数 时时彩大小软件 时时彩软件平刷稳赚 时时彩后八码技巧 手机版时时彩拼接工具
信誉好的黑彩平台排名 时时彩中奖规则 时时彩论坛高手绝学 江苏时时彩开奖结果 江西时时彩走势图hg0088gw88
新疆时时彩银狐娱乐 功夫重时时彩计划软件 凤凰彩票官网 江西时时彩官网lm0 时时彩计划软件苹果
时时彩定位软件最准 皇冠时时彩 诺顿杀毒软件试用版 自己开时时彩平台 彩票助赢软件安卓版
幸运赛车开奖结果 江西时时彩软件 河北快3和值概率走势图?河北快3的技巧?河北快3开奖直播购买 吉林十一选五开奖结果查询v 七乐彩走势图
多宝娱乐平台客户端 小赛车pk10开奖结果 湖北30选5开奘公告 四川体彩金7乐 北京赛车pk10软件哪个好
香港六合彩特码资料 21号贵州十一选五开奖号码 pk10开奖 淘宝彩票 楚天风采22选5开奖结果
天津快乐10分钟开奖结果一定牛 娱乐城搭建 黑龙江时时彩平台网址 湖北十一选五分布图 上海时时乐大赢家