习题 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

如何搭建时时彩平台 江西时时彩讨论 时时彩计划后一后二 新金盾时时彩 天天时时彩计划
吉林时时彩快3开奖结果 好运来时时彩骗 时时彩平台奖金高9.99 时时彩有人赚到钱了吗 内蒙古时时彩赚钱吗
时时彩五星做号软件 老时时彩技巧公式 时时彩收益表 时时彩源码teafly 超神平刷破解版
平刷王时时彩软件 新疆时时彩中奖规则 时时彩和值投注技巧 优博时时彩软件下载 时时彩开8
黑龙江十一选五推荐 深圳风采开奖查询 终极急速赛车 今天的内蒙古快3走势图 腾讯一分彩和分分彩一样的吗
广东十一选五16031849 江苏11选5开奖结果查询 如何教小学生写作文 吉林快3时时彩 福建快3推荐和值推荐号码?福建快3现场开奖?福建快3开奖结果查询?河北快3推荐号码今天
河南快赢481开奖视频结果 赛车pk10pk10开奖记录 北京11选5分布走势图 金盾黑龙江时时彩 下载广西快3开奖软件下载◇广西快3遗漏一定牛
11选5开奖结果 26选5好彩2中奖概率 德州扑克迷 重庆时时彩官网 甘肃11选5任三最大遗漏