《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(),但它们的工作方式完全相同。

相关文章
|
20天前
|
Python
python文件读写操作的三大基本步骤
python文件读写操作的三大基本步骤
36 0
|
3天前
|
Shell Python
Python Stock guess_indicators_daily_job.py文件的调整
Python Stock guess_indicators_daily_job.py文件的调整
12 1
|
4天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
11 1
|
1天前
|
Python
在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存
在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存在,该函数对路径进行检查,存在则返回True,不存在则返回False。示例代码展示了如何检查&#39;example.txt&#39;文件是否存在并相应打印消息。此外,`os.path.isfile()`用于确认路径是否为文件,仅当是文件时返回True,否则返回False,同样配以示例说明其用法。
8 2
|
5天前
|
数据采集 NoSQL 中间件
python-scrapy框架(四)settings.py文件的用法详解实例
python-scrapy框架(四)settings.py文件的用法详解实例
9 0
|
5天前
|
存储 数据采集 数据库
python-scrapy框架(三)Pipeline文件的用法讲解
python-scrapy框架(三)Pipeline文件的用法讲解
7 0
|
7天前
|
缓存 数据处理 Python
python读取文件到缓存
python读取文件到缓存
12 1
|
7天前
|
存储 数据挖掘 Python
Python技术分享:实现选择文件或目录路径的方法
Python技术分享:实现选择文件或目录路径的方法
17 2
|
8天前
|
前端开发 JavaScript Python
使用Python读取本地行情csv文件,做出web网页画出K线图实现案例
【5月更文挑战第4天】使用Python绘制K线图的步骤:1) 安装pandas, matplotlib和Flask;2) 用pandas读取CSV文件并处理数据;3) 创建Flask应用,渲染包含K线图数据的HTML;4) 编写HTML,使用ECharts库绘制K线图。
26 0
|
14天前
|
Linux iOS开发 MacOS
pyinstaller---Python代码的打包神器,一键将python代码打包成exe可执行文件
pyinstaller---Python代码的打包神器,一键将python代码打包成exe可执行文件