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

    xiaoxiao2024-01-16  160

    本节书摘来自异步社区《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,"= %0.2f" % (year,principal) year += 1 f.close()

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

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

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

    f.write("= %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(),但它们的工作方式完全相同。

    相关资源:Python参考手册第4版修订版(中文).epub
    最新回复(0)