设为首页 收藏本站
查看: 686|回复: 0

[经验分享] Python文件的输入输出

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-2-9 10:01:39 | 显示全部楼层 |阅读模式
1、文件

    通过创建一个file类的对象来打开一个文件,分别使用file类的read、readline或write方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用close方法来告诉Python我们完成了对文件的使用。
    使用文件:
#!/usr/bin/python

# Filename: using_file.py
poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
        use Python!
'''
f = file('poem.txt','w') #open for 'w'riting
f.write(poem) # write text to file
f.close() # close the file

f = file('poem.txt')
# if no mode is specified,'r'ead mode is assumed by default
while True:
        line = f.readline()
        if len(line) == 0: # Zero length indicates EOF
                break
        print line,
        # Notice comma to avoid automatic newline added by Python
f.close() # close the file
[iyunv@gflinux102 code]# python using_file.py
Programming is fun
When the work is done
if you wanna make your work also fun:
        use Python!
[iyunv@gflinux102 code]# cat poem.txt
Programming is fun
When the work is done
if you wanna make your work also fun:
        use Python!
[iyunv@gflinux102 code]#
    首先,通过指明希望打开的文件和模式来创建一个file类的实例。模式可以为读模式('r')、写模式('w')或追加模式('a')。事实上还有多得多的模式可以使用,你可以使用help(file)来了解它们的详情。
    用写模式打开文件,然后使用file类的write方法来写文件,最后我们用close关闭这个文件。
    接下来,再一次打开同一个文件来读文件。如果我们没有指定模式,读模式会作为默认的模式。在一个循环中,我们使用readline方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个 空的 字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。
注意,因为从文件读到的内容已经以换行符结尾,所以我们在print语句上使用逗号来消除自动换行。最后,我们用close关闭这个文件。
    现在,来看一下poem.txt文件的内容来验证程序确实工作正常了。
2、储存器
    Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。
    还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍)。你可以使用它们中的任一个,而在这里将使用cPickle模块。记住,我们把这两个模块都简称为pickle模块。
    储存与取储存:

#!/usr/bin/python
# Filename: pickling.py
import cPickle as p
shoplistfile = 'shoplist.data'
# the name of the file where we will store the object
shoplist = ['apple','mango','carrot']
# Write to the file
f = file(shoplistfile,'w')
p.dump(shoplist,f) # dump the object to a file
f.close()
del shoplist # remove the shoplist
# read back from the storage
f = file(shoplistfile)
storedlist = p.load(f)
print storedlist
[iyunv@gflinux102 code]# python pickling.py
['apple', 'mango', 'carrot']
[iyunv@gflinux102 code]# cat shoplist.data
(lp1
S'apple'
p2
aS'mango'
p3
aS'carrot'
p4
a.
    首先,请注意我们使用了import..as语法。这是一种便利方法,以便于我们可以使用更短的模块名称。在这个例子中,它还让我们能够通过简单地改变一行就切换到另一个模块(cPickle或者pickle)!在程序的其余部分的时候,我们简单地把这个模块称为p。
    为了在文件里储存一个对象,首先以写模式打开一个file对象,然后调用储存器模块的dump函数,把对象储存到打开的文件中。这个过程称为 储存 。
    接下来,我们使用pickle模块的load函数的返回来取回对象。这个过程称为 取储存 。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-42261-1-1.html 上篇帖子: http 检测是否正常脚本 下篇帖子: python(django) 使用PIL报错IOError at decoder jpeg not available
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表