《Python参考手册(第4版•修订版)》——1.4 文件输入和输出

本节书摘来自异步社区《Python参考手册(第4版•修订版)》一书中的第1章,第1.4节,作者David M. Beazley,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 文件输入和输出

以下程序可打开一个文件并逐行读取该文件的内容:

f = open("foo.txt")          # 返回一个文件对象
line = f.readline()          # 调用文件的readline()方法
while line:
    print line,              # 后面跟','将忽略换行符
    # print(line,end='')     # 在Python 3中使用
    line = f.readline()
f.close()

open()函数返回一个新的文件对象。调用该对象的方法可以执行各种文件操作。readline()方法读取一行内容,包括结尾的换行符在内。读至文件结尾时将返回空字符串。

在这个例子中,程序只是循环读取了文件foo.txt中的所有行。如果程序在像这样的数据集(如输入中的行、数字、字符串等)上进行循环,那么这通常就称为迭代。因为迭代是很常见的一种操作,所以Python为其提供了一条专用语句for,用于迭代内容项。例如,同样的程序可以写成下面这种更简洁的形式:

for line in open("foo.txt"):
    print line,

要将程序的输出写入一个文件中,需要在print语句后面使用>>指定一个文件,如下所示:

f = open("out","w")     # 打开文件以便写入
while year <= numyears:
    principal = principal * (1 + rate)
    print >>f,"%3d %0.2f" % (year,principal)
    year += 1
f.close()

>>语法只能用在Python 2中。如果使用Python 3,可将print语句改为以下内容:

print("%3d %0.2f" % (year,principal),file=f)

另外,文件对象支持使用write()方法写入原始数据。例如,前一例子中的print语句也可以写成下面这样:

f.write("%3d %0.2f\n" % (year,principal))

尽管这些例子处理的都是文件,但同样的技巧也适用于标准的解释器输出流和输入流。例如,如果想交互式地读取用户输入,可以从文件sys.stdin中读取。如果要将数据输出到屏幕上,可以写入文件sys.stdout中,这与在输出print语句所生成数据时所用的文件是同一个文件。例如:

import sys
sys.stdout.write("Enter your name :")
name = sys.stdin.readline()

在Python 2中,这段代码还可以简化为:

name = raw_input("Enter your name :")

在Python 3中,raw_input()函数叫做input(),但它们的工作方式完全相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值