上节简单的说明了一下Pyhon下的文件读写基本流程,从本节开始,我们做几个小例子来具体展示一下Python下的文件操作,本节主要是详细讲述Python的文件读操作。
下面举一个例子,例子的功能是读取当前目录下的a.txt文本文件里的内容并输出打印到屏幕上。下图是运行结果。
程序代码如下:
rfile = open("a.txt", 'r')
words = rfile.read()
print words
rfile.close()
代码第一行的作用是以只读的方式打开当前目录下的a.txt文件,rfile变量建立了Python程序和文件a.txt之间的联系,后续的程序有关对a.txt的操作均可通过rfile这个变量来操作控制;代码第2行的作用是程序通过rfile来读取a.txt文件里的内容,read函数的作用是将文件里的所有内容都读出来,读出的结果赋值给了word这个变量,word里保存着刚刚通过rfile.read函数读回的内容,代码第3行是将word打印出来即打印读文件a.txt的内容。代码的第4行是关闭文件,因为读写完了应该关闭文件。
好了,至此我们已经学会如何打开文件并读文件了,现在想提两个小问题.。
问题1. 如果要读的文件不在当前目录下怎么办?(本节使用read.py程序)
从上图可以看出,当前目录下无a.txt,程序报错,解决办法是修改源程序,或者把a.txt改回成b.txt,这都简单,假设我们要访问的a.txt在当前目录的上一层目录,我们怎么改程序呢?
现在要编写的程序叫read.py它想读其父目录下的a.txt文件,我们看程序该怎么改。
rfile = open("../a.txt", 'r')
words = rfile.read()
print words
rfile.close()
需要修改的就是在打开文件的时候要描述清楚文件相对于当前目录的位置,这里可以使用绝对路径来描述某个要打开的文件在那,也可以用相对路径来描述要打开的文件再那,本例使用的是相对路径描述a.txt在自己的父目录里。(../在linux系统下代表上一级目录),好了问题已经解决了。我们可以继续了。
问题2. 能一行一行的读文件的内容么?
当然可以了,换个函数就解决了,这里介绍一个其他读文件的函数readline,这个函数一行一行的读文件(到每行的第一个\n结束)。
代码如下所示。
rfile = open("../a.txt", 'r')
words = rfile.readline()
print words
rfile.close()
readline函数每次只读一行!要想两行都读出来,那就读两次呗。
-----