垦利县企业型网站建设,网站建设后台,网站怎么做动态图片,wordpress如何选择文章模板Python入门第7/10页更新时间#xff1a;2007年02月08日 00:00:00 作者#xff1a;第七章 输入输出有几种办法可以从程序输出#xff1b;数据可以用可读的形式显示#xff0c;或保存到文件中以备日后使用。本章讨论一些输入输出的办法。7.1 输出格式控制到现在为止我们已经…Python入门第7/10页更新时间2007年02月08日 00:00:00 作者第七章 输入输出有几种办法可以从程序输出数据可以用可读的形式显示或保存到文件中以备日后使用。本章讨论一些输入输出的办法。7.1 输出格式控制到现在为止我们已经看到了两种输出值的方法表达式语句和print语句。(第三种方法是使用文件对象的write()方法标准输出文件可以用sys.stdout引用。参见库参考手册)。我们常常需要控制输出格式而不仅仅是显示空格分开的值。有两种办法控制输出格式一种办法是自己进行字符串处理用字符串的片断和合并操作可以产生任何可以想象的格式。标准模块string包含了诸如把字符串填充到指定的列宽这样的有用操作后面会有提及。另一种办法是使用%运算符此运算符以一个字符串为左运算元它按C的sprintf()函数格式把右运算元转换为字符串返回转换结果。问题是如何把值转换为字符串幸运的是Python有一种办法可以把任何值转换为字符串使用repr()函数或把值写在两个反向引号()之间。例如 x 10 * 3.14 y 200*200 s The value of x is x , and y is y ... print sThe value of x is 31.4, and y is 40000... # 反向引号也适用于非数值型... p [x, y] ps repr(p) ps[31.4, 40000] # 转换字符串对字符串加字符串引号和反斜杠... hello hello, world\n hellos hello print helloshello, world\012 # 反向引号内可以是一个序表... x, y, (spam, eggs)(31.4, 40000, (spam, eggs))下面是两种写出平方、立方表的方法 import string for x in range(1, 11):... print string.rjust(x, 2), string.rjust(x*x, 3),... # 前一行的结尾逗号表示不换行... print string.rjust(x*x*x, 4)...1 1 12 4 83 9 274 16 645 25 1256 36 2167 49 3438 64 5129 81 72910 100 1000 for x in range(1,11):... print%2d %3d %4d % (x, x*x, x*x*x)...1 1 12 4 83 9 274 16 645 25 1256 36 2167 49 3438 64 5129 81 72910 100 1000注意print输出的各项之间额外加了一个空格这是print的规定。此例显示了函数string.rjust()的用法此函数可以把一个字符串放进指定宽度右对齐左边用空格填充。类似函数还有string.ljust()和string.center()。这些函数不向外输出只是返回转换后的字符串。如果输入字符串太长也不会被截断而是被原样返回。这样的处理可能会使你的列对齐失效但这可能比截断要好一些截断的结果是我们看到一个错误的值。(如果你确实需要截断的话总可以再加一层片断如string.ljust(x,n)[0:n])。还有一个函数string.zfill()可以在数值左边填零。此函数可以处理带有加减号的情况 string.zfill(12, 5)00012 string.zfill(-3.14, 7)-003.14 string.zfill(3.14159265359, 5)3.14159265359%操作符的用法如下例 import math print The value of PI is approximately %5.3f. % math.piThe value of PI is approximately 3.142.如果有多个值可以用一个序表给出这时格式字符串中要有多个格式如 table {Sjoerd: 4127, Jack: 4098, Dcab: 8637678} for name, phone in table.items():... print%-10s %10d % (name, phone)...Jack 4098Dcab 8637678Sjoerd 4127大多数格式与C用法相同要求要输出的值的类型符合格式的需要。但是如果你没有引发例外错误的话也不会产生内核堆列。Python的%s格式要宽得多如果相应的输出项不是字符串对象就先用str()内置函数把它变成字符串。在格式指定中宽度指定为*号表示后面的输出项中多出一个指定宽度的整数。C格式%n和%p未被支持。如果你有一个长格式串不想把它分开可以在指定格式的地方指定名字这样就不需要按次序去把格式和名字对应起来这种格式为“%(变量名)格式”例如 table {Sjoerd: 4127, Jack: 4098, Dcab: 8637678} print Jack: %(Jack)d; Sjoerd: %(Sjoerd)d; Dcab: %(Dcab)d % tableJack: 4098; Sjoerd: 4127; Dcab: 8637678这里输出项总是一个字典字典的各项值是要输出的值字典的键值是各值的名字。这种输出格式经常与内置函数var()配合使用var()返回包含所有局部变量的字典。7.2 读写文件open()打开一个文件对象经常使用两个参数“open(文件名模式)”。例如 fopen(/tmp/workfile, w) print f第一自变量是一个包含了文件名的字符串第二自变量是文件打开方式的字符串。模式‘r 表示读取‘w表示只写(已有的同名文件被清除)‘a表示打开文件在尾部添加 ‘r表示打开文件既可以读也可以写。打开方式参数可选缺省为‘r模式。在Windows和Macintosh中在模式中加入‘b表示以二进制格式打开文件如‘rb、‘wb 、‘rb。Windows对文本文件和二进制文件有不同的处理文本文件中的换行字符在读写时有变化。这种对文件数据的幕后的修改不影响ASCII文本文件但是会破坏二进制数据如JPEG 或“.EXE”文件的数据。读写这样的文件一定要使用二进制格式。(Macintosh中文本模式的精确描述依赖于使用的C库)。7.2.1 文件对象的方法本节后面的例子假设已经建立了一个名为f的文件对象。为了读取文件内容调用f.read(size)可以读入一定字节数的数据返回为一个字符串。size 是一个可选数值参数省略size或size取负值时读入整个文件并返回为一个字符串如果文件比你的机器内存大一倍那是你的问题。指定了正的size的时候之多读入并返回size字节。如果读到了文件尾f.read()返回一个空串()。如 f.read()This is the entire file.\012 f.read()f.readline()从文件中读入一行返回的字符串中将包括结尾的一个换行符(\n)如果文件的最后一行没有换行符则由该行读入的字符串也没有结尾的换行符。这样由readline() 返回的结果不会有歧义读入结果为空串时一定是到了文件尾读入一个\n时为空行。 f.readline()This is the first line of the file.\012 f.readline()Second line of the file\012 f.readline()f.readlines()反复调用f.readline()返回一个包含文件所有行的列表。 f.readlines()[This is the first line of the file.\012, Second line of the file\012]f.write(string)把string的内容写入到文件中返回None。 f.write(This is a test\n)f.tell()返回文件对象的当前读写为止按从文件开始的字节数算。为了改变读写位置使用“f.seek(位移从哪里)”。读写位置按一个参考点加上位移来计算参考点用“从那里”参数指定取0时从文件头开始算取1时按当前位置算取2时从文件尾算。缺省值是0 从文件开始算。 fopen(/tmp/workfile, r) f.write(0123456789abcdef) f.seek(5) # 从文件头前进5个字节到达第6个字符 f.read(1)5 f.seek(-3, 2) # 转到结尾前3个字符 f.read(1)d用外一个文件后调用f.close()关闭文件释放打开文件所占用的系统资源。文件关闭后再使用此文件对象就无效了。 f.close() f.read()Traceback (innermost last):File , line 1, in ?ValueError: I/O operation on closed file文件对象还有其它一些不太常用的方法例如isatty()和truncate()参见库参考手册。7.2.2 pickle模块字符串可以很容易地从文件读入或向文件写出。读入数值要麻烦一些因为read()方法总是返回字符串要把读入的字符串传给象string.atoi()这样的函数把象‘123这样的字符串转换为对应的整数值123。但是当你想保存更复杂的数据类型如列表、字典或类实例时读写就要复杂得多。Python的设计使程序员可以不必反复编写调试保存复杂数据类型的代码它提供了一个叫做pickle的标准模块。这个令人惊异的模块可以把几乎任何Python对象转换为字符串表示这个过程叫做腌制从对象的字符串表示恢复对象叫做恢复。在腌制和反腌制之间对象的字符串表示可以保存在文件或数据中甚至于通过网络连接传送到远程计算机上。如果你有一个对象x有一个可写的文件对象f最简单的腌制对象的办法是下面一行代码pickle.dump(x, f)为了恢复对象如果刚才的文件已打开用于读取文件对象名仍为f则x pickle.load(f)(腌制和恢复还有其它用法可以腌制多个对象可以不把数据写入文件详见库参考手册)。pickle是保存Python对象并被其它程序或同一程序以后再运行时调用的标准办法这种做法的专用术语叫做“持久对象”。因为pickle使用广泛许多Python扩展模块的作者都留意使新增加的数据类型如矩阵可以正确地腌制和恢复。相关文章今天小编就为大家分享一篇在IPython中执行Python程序文件的示例具有很好的参考价值希望对大家有所帮助。一起跟随小编过来看看吧2018-11-11这篇文章主要介绍了python格式化字符串的方法,实例展示了常见的几类Python针对字符串的格式方法,非常实用,需要的朋友可以参考下2014-09-09这篇文章主要介绍了使用pygame实现垃圾分类小游戏功能(已获校级二等奖),本文通过实例代码给大家介绍的非常详细对大家的学习或工作具有一定的参考借鉴价值需要的朋友可以参考下2020-07-07今天小编就为大家分享一篇TensorFlow内存管理bfc算法实例具有很好的参考价值希望对大家有所帮助。一起跟随小编过来看看吧2020-02-02这篇文章主要介绍了Python heapq使用详解及实例代码的相关资料,需要的朋友可以参考下2017-01-01今天小编就为大家分享一篇python实现对列表中的元素进行倒序打印具有很好的参考价值希望对大家有所帮助。一起跟随小编过来看看吧2019-11-11这篇文章主要介绍了Django admin管理工具TabularInline类用法详解具有很好的参考价值希望对大家有所帮助。一起跟随小编过来看看吧2020-05-05今天小编就为大家分享一篇python画柱状图--不同颜色并显示数值的方法具有很好的参考价值希望对大家有所帮助。一起跟随小编过来看看吧2018-12-12这篇文章主要介绍了django 快速启动数据库客户端程序的方法示例文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧2019-08-08这篇文章主要介绍了python动态性强类型用法,对比C#实例分析了python动态性强类型的使用方法,需要的朋友可以参考下2015-05-05最新评论