笨办法学Python(十七)

习题 17: 更多文件操作

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

 1 from sys import argv
 2 from os.path import exists
 3
 4 script, from_file, to_file = argv
 5
 6 print "Copying from %s to %s" % (from_file, to_file)
 7
 8 # we could do these two on one line too, how?
 9 input = open(from_file)
10 indata = input.read()
11
12 print "The input file is %d bytes long" % len(indata)
13
14 print "Does the output file exist? %r" % exists(to_file)
15 print "Ready, hit RETURN to continue, CTRL-C to abort."
16 raw_input()
17
18 output = open(to_file, ‘w‘)
19 output.write(indata)
20
21 print "Alright, all done."
22
23 output.close()
24 input.close()

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

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

你应该看到的结果

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

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() 。

习题练习

时间: 2024-10-29 04:36:18

笨办法学Python(十七)的相关文章

笨办法学Python 练习13和14

原题: 1 from sys import argv 2 3 script, first, second, third = argv 4 5 print "The script is called:", script 6 print "Your first variable is:", first 7 print "Your second variable is:", second 8 print "Your third variabl

笨办法学 Python (Learn Python The Hard Way)

最近在看:笨办法学 Python (Learn Python The Hard Way) Contents: 译者前言 前言:笨办法更简单 习题 0: 准备工作 习题 1: 第一个程序 习题 2: 注释和井号 习题 3: 数字和数学计算 习题 4: 变量(variable)和命名 习题 5: 更多的变量和打印 习题 6: 字符串(string)和文本 习题 7: 更多打印 习题 8: 打印,打印 习题 9: 打印,打印,打印 习题 10: 那是什么? 习题 11: 提问 习题 12: 提示别人

笨办法学Python(二十七)

习题 27: 记住逻辑关系 到此为止你已经学会了读写文件,命令行处理,以及很多 Python 数学运算功能.今天,你将要开始学习逻辑了.你要学习的不是研究院里的高深逻辑理论,只是程序员每天都用到的让程序跑起来的基础逻辑知识. 学习逻辑之前你需要先记住一些东西.这个练习我要求你一个星期完成,不要擅自修改日程,就算你烦得不得了,也要坚持下去.这个练习会让你背下来一系列的逻辑表格,这会让你更容易地完成后面的习题. 需要事先警告你的是:这件事情一开始一点乐趣都没有,你会一开始就觉得它很无聊乏味,但它的目

笨办法学Python(三十七)

习题 37: 复习各种符号 现在该复习你学过的符号和 python 关键字了,而且你在本节还会学到一些新的东西.我在这里所作的是将所有的 Python 符号和关键字列出来,这些都是值得掌握的重点. 在这节课中,你需要复习每一个关键字,从记忆中想起它的作用并且写下来,接着上网搜索它真正的功能.有些内容可能是无法搜索的,所以这对你可能有些难度,不过你还是需要坚持尝试. 如果你发现记忆中的内容有误,就在索引卡片上写下正确的定义,试着将自己的记忆纠正过来.如果你就是不知道它的定义,就把它也直接写下来,以

笨办法学Python(十三)

习题 13: 参数.解包.变量 在这节练习中,我们将讲到另外一种将变量传递给脚本的方法(所谓脚本,就是你写的 .py 程序).你已经知道,如果要运行 ex13.py,只要在命令行运行 python ex13.py 就可以了.这句命令中的 ex13.py 部分就是所谓的"参数(argument)",我们现在要做的就是写一个可以接受参数的脚本. 将下面的程序写下来,后面你将看到详细解释. 1 from sys import argv 2 3 script, first, second, t

笨办法学Python(二十五)

习题 25: 更多更多的练习 我们将做一些关于函数和变量的练习,以确认你真正掌握了这些知识.这节练习对你来说可以说是一本道:写程序,逐行研究,弄懂它. 不过这节练习还是有些不同,你不需要运行它,取而代之,你需要将它导入到 python 里通过自己执行函数的方式运行. 首先以正常的方式 python ex25.py 运行,找出里边的错误,并把它们都改正过来.然后你需要接着下面的答案章节完成这节练习. 你应该看到的结果 这节练习我们将在你之前用来做算术的 python 编译器里,用交互的方式和你的.

笨办法学Python(二十八)

习题 28: 布尔表达式练习 上一节你学到的逻辑组合的正式名称是"布尔逻辑表达式(boolean logic expression)".在编程中,布尔逻辑可以说是无处不在.它们是计算机运算的基础和重要组成部分,掌握它们就跟学音乐掌握音阶一样重要. 在这节练习中,你将在 python 里使用到上节学到的逻辑表达式.先为下面的每一个逻辑问题写出你认为的答案,每一题的答案要么为 True 要么为 False.写完以后,你需要将python 运行起来,把这些逻辑语句输入进去,确认你写的答案是否

笨办法学Python(二十九)

习题 29: 如果(if) 下面是你要写的作业,这段向你介绍了"if语句".把这段输入进去,让它能正确执行.然后我们看看你是否有所收获. 1 people = 20 2 cats = 30 3 dogs = 15 4 5 6 if people < cats: 7 print "Too many cats! The world is doomed!" 8 9 if people > cats: 10 print "Not many cats!

笨办法学Python(二十六)

习题 26: 恭喜你,现在可以考试了! 你已经差不多完成这本书的前半部分了,不过后半部分才是更有趣的.你将学到逻辑,并通过条件判断实现有用的功能. 在你继续学习之前,你有一道试题要做.这道试题很难,因为它需要你修正别人写的代码.当你成为程序员以后,你将需要经常面对别的程序员的代码,也许还有他们的傲慢态度,他们会经常说自己的代码是完美的. 这样的程序员是自以为是不在乎别人的蠢货.优秀的科学家会对他们自己的工作持怀疑态度,同样,优秀的程序员也会认为自己的代码总有出错的可能,他们会先假设是自己的代码有