Exercise 15:读文件
来源:互联网 发布:sql select a,b,c 编辑:程序博客网 时间:2024/05/01 08:44
原文链接:http://learnpythonthehardway.org/book/ex15.html
你已经学习了关于 raw_input 和 argv 的相关知识,那么现在你可以开始学习如何读文件了。你可能必须做完大部分练习才能理解发生了什么事情,所以你必须仔细的学习并且做好检查工作。如果你不够细心的话文件操作可能很容易就毁掉你整个功能。
这次的练习中涉及到写两个文件。一个就是你经常运行的 ex15.py 文件,但是另一个是名为 ex15_sample.txt 的文件。第二个文件不是脚本文件而是一个无格式文本文件我们可以在脚本中直接读取的一种格式文件。下面就是这个文件的文本内容:
This is stuff I typed into a file.It is really cool stuff.Lots and lots of fun to have in here.我们想要做的就是在我们脚本中打开这个文件并且把其中的内容打印出来。然而,我们不想用“硬编码”的方式来那个将名为 ex15_sample.txt的文本内容加载到我们的脚本中。“硬编码”的意思是把本应该来自用户输入内容写作一个常量的字符串信息放到我们的脚本中。这是不好的做法,因为在后面我们还想加载其他文件内容。解决这个问题的办法就是使用 argv 和 raw_input 来要求用户输入想要读取的文件名来来代替“硬编码”方式设置的文件名。
from sys import argvscipt ,filename = argvtxt = open(filename)print "Here's your file %r:" % filenameprint txt.read()print "Type the filename again:"file_again = raw_input("> ")txt_again = open(file_again)print txt_again.read()这个脚本文件中将会发生一些神奇的事情,让我们赶紧来分析一下这个些代码:
1~3行是我吗所熟悉的使用 argv 来得到一个文件名。在下面的五行中有一个新的命令 open 。现在,运行 pydoc open相关命令阅读对这个命令的介绍。主要到这其实很像你
脚本中的 raw_input功能,都是得到一个相关参数后将其赋给你自己的一个变量。这里你只是用open做了一个打开文件的操作。
在第7行我们打印了一小行文本,但是在第8行就有一个新奇的东西了。我们调用了txt上的一个函数。txt 就是打开 file 后返回的一个值,并且它可以接受你给它的指令。一个文件名可以通过 “."(点 或者 英式句号),指令名称和参数三个组成来调用一个相关指令。就行如 open 和 raw_input 函数一样。不同之处在于当你说 txt.read()你的意思就是:“嘿,txt !你读取了一个没有带参数的指令”。
程序中剩下的几行原理都差不多,所以剩下的几个就留在研究训练中让你来分析。
输出结果如下:
E:\>python ex15.py ex15_sample.txtHere's your file 'ex15_sample.txt':This is stuff I typed into a file.It is really cool stuff.Lots and lots of fun to have in here.Type the filename again:> ex15_sample.txtThis is stuff I typed into a file.It is really cool stuff.Lots and lots of fun to have in here.
研究训练:
这次练习有一个比较大的跳跃,在你继续往下学习之前尽可能的做好研究训练中的练习。学生遇见的常见问题:
- Exercise 15:读文件
- Exercise 16: 读写文件
- Exercise 17:更多文件操作
- exercise 17 读取文件_2
- Python Exercise #15
- Exercise
- exercise
- Exercise
- exercise
- Exercise(15):杨辉三角
- LeetCode Exercise 15: Summary Ranges
- exercise 22&23 总结+读代码
- python exercise 15 read a file
- IO Exercise(Ⅰ)---------- 文件后缀名的过滤
- Exercise 4.2 Exercise 4.3
- <<Oracle Applications DBA 基础(第二期)>>Week 15 exercise
- C - The C Answer (2nd Edition) - Exercise 1-15
- 第九章:Gaussian Mixture and EM exercise 15-27
- 太他妈的让人感动了,年度大戏啊![哈哈]
- 决不放弃维护国家正当权益 决不牺牲国家核心利益
- 2013级C++第3周【项目2 - 旱冰场造价】
- 2014年必看的20部巨作
- C++的特点
- Exercise 15:读文件
- 五十音图快速记忆法
- C盘空间不足的整理磁盘方法
- 【你适合多大的男朋友呢?】据说很准。[嘻嘻]
- 编写计算“两个整数的最大公约数”程序
- ListControl自动高亮显示下一行
- AFHTTPClient本地文件数据失败可能原因之一
- 恢复被rm意外删除数据文件
- jquery实现上传图片的预览