- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 输入输出
本章的主题是Python的输出输出细节:命令行参数、环境变量、文件I/O、Unicode及对象持久
化。
1.1.
11..11.. 读取参数及环境变量
当解释器启动时,命令行参数就被放入 sys.argv 这个列表中。列表的第一个元素是程序的名
字,后面的元素是你提供的命令行参数。下面的程序展示了如何访问命令行参数:
Toggle line numbers lang=en id=CA-32d468f23d264d8e1c450b6603dbe5_000 dir=ltr
1#printopt.py
2# 打印出所有命令行参数
3importsys
4foriinrange(len(sys.argv)):
5 printsys.argv[%d]=%s%(i,sys.argv[i])
运行该程序,结果如下:%pythonprintopt.pyfoobar-p
sys.argv[0]=printopt.py
sys.argv[1]=foo
sys.argv[2]=bar
sys.argv[3]=-p
%
通过访问os.envirom字典可以访问环境变量,如下例:
Toggle line numbers lang=en id=CA-c62ef5ac491e9742a7c0840485cbd6d059876d63_001 dir=ltr
1importos
2path=os.environ[PATH]
3user=os.environ[USER]
4editor=os.environ[EDITOR]
要更改环境变量, 直接设定 os.environ 变量或使用 os.putenv() 函数。如下例:
Togglelinenumbers lang=en id=CA-351fb3b2ca55bd64233fabe20268f53002dir=ltr 1
os.environ[FOO]=BAR
2os.putenv(FOO,BAR)
1.2.
11..22.. 文件
内建函数 open(name[,mode]) 打开或创建文件,就象下面这样:
Toggleline numbers lang=en id=CA-2c80a61eb0f7823c3bae162ce648d15eb4965fce_003dir=ltr 1
f=open(foo) # 以读取模式打开 foo
2f=open(foo,w) # 以写模式打开 foo
文件模式 r 表示读, w 表示写, a 表示在文件末尾添加内容。 模式字符后面允许跟一个
b 表示访问的是二进制数据,比如 rb 或 wb。对 UNIX(或Linux)这个b有没有无关紧要,
对 Windows 平台则有积极意义。如果你很关心代码的可移植性,那就最好总是加上这个b。
另外,还有一种更新模式,你只要在读写模式后增加一个+就可以使用这种模式,如r+ 或
w+。当一个文件以更新模式打开,你就可以对这个文件进行读写操作。只要在任何读取操作
之前刷新所有的输出缓冲就不会有问题。如果一个文件以 w+ 模式打开,它的长度就度截为
0。
open() 返回一个文件对象,它支持下表中列出的方法
9.1.
表 99..11.. 文件方法 方法 描述
f.read([n]) 读取至多 n 字节
f.readline([n]) 读取一行中的前 n 字符。如果 n 被省略,就读取整行
f.readlines() 读取所有的行并返回一个包含所有行的列表
f.xreadlines() 返回一个迭代器,每次迭代返回文件的一个新行
f.write(s) 将字符串 s 写入文件
f.writelines(l) 将列表 l 中的所有字符串写入文件
f.close() 结束文件
f.tell() 返回当前的文件指针
f.seek(offset[,where]) 定位到一个新的文件位置
f.isatty() 如果 f 是一个交互式终端则返回 1
f.flush() 刷新输出缓冲区
f.truncate([size]) 如果文件长于 size 就截短它至 size 大小
f.fileno() 返回一个整型的文件描述符
f.readinto(buffer,
文档评论(0)