Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Python学习——输入输出

Python学习——输入输出

巴扎黑
巴扎黑asal
2016-12-09 14:08:191399semak imbas

输入输出

文件

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

Python代码  

poem = '''''\Programming is fun When the work is done if you wanna make your work also fun:use Python!'''  
f = file('poem.txt', 'w')  
f.write(poem)  
f.close()  
f = file('poem.txt')  
  
while True:  
    line = f.readline()  
    if len(line) == 0:  
        break  
    print line,  
     
f.close()

        输出:

Python代码  

Programming is fun  
When the work is done  
if you wanna make your work also fun:  
        use Python!

        首先,可以通过指明我们希望打开的文件和模式来创建一个file类的实例。模式可以为读模式('r')、写模式('w')或追加模式('a')。还有很多其它的模式可以使用,可以使用help(file)来了解它们的详情。我们用写模式打开文件,然后使用file类的write方法来写文件,最后我们用close关闭这个文件。
        接下来,我们再一次打开同一个文件来读文件。如果我们没有指定模式,读模式会作为默认的模式。在一个循环中,我们使用readline方法读文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个空的字符串被返回的时候,即表示文件末已经到达了,于是我们停止循环。
注意,因为从文件读到的内容已经以换行符结尾,所以我们在print语句上使用逗号来消除自动
换行。
        最后,我们用close关闭这个文件。

储存器

        Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为持久地储存对象。
        还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍)。你可以使用它们中的任一个,而我们在这里将使用cPickle模块。记住,我们把这两个模块都简称为pickle模块。
        储存与取储存例子如下:

Python代码  

import cPickle as p  
  
shoplistfile = 'shoplist.data'  
shoplist = ['apple', 'mango', 'carrot']  
f = file(shoplistfile, 'w')  
p.dump(shoplist, f)  
f.close()  
del shoplist  
f = file(shoplistfile)  
storedlist = p.load(f)  
print storedlist

        输出:

Python代码  

['apple', 'mango', 'carrot']

        首先,请注意我们使用了import..as语法。这是一种便利方法,以便于我们可以使用更短的模块名称。在这个例子中,它还让我们能够通过简单地改变一行就切换到另一个模块(cPickle或者pickle)!在程序的其余部分的时候,我们简单地把这个模块称为p。
        为了在文件里储存一个对象,首先以写模式打开一个file对象,然后调用储存器模块的dump函数,把对象储存到打开的文件中。这个过程称为储存 。
        接下来,我们使用pickle模块的load函数的返回来取回对象。这个过程称为取储存 。


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Python学习——异常Artikel seterusnya:Python线程整理