A Byte of Python 笔记(10)

第12章  输入/输出

大多数情况下,我们需要程序与用户交互。从用户得到输入,然后打印一些结果。

可以分别使用 raw_input 和 print 语句来完成这些功能。对于输出,可以使用多种多样的 str(字符串)类。

另一个常用的输入/输出类型是处理文件。创建、读和写文件的能力是许多程序所必须的。

文件

通过 file 类的对象来打开一个文件,使用 file 类的 read、readline 或 write 方法来恰当地读写文件。对文件的读写能力依赖于打开文件时指定的模式(模式可以为读模式(‘r‘)、写模式(‘w‘)或追加模式(‘a‘))。最后完成对文件的操作时,调用 close 方法完成对文件的使用。

# -*- coding: utf-8 -*-
# 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()

首先,使用写模式打开文件,然后使用 file 类的 write 方法来写文件,最后用 close 关闭文件。

接下来,再一次打开同一个文件来读文件。如果不指定模式,默认为读模式。readline 方法读取文件的每一行,返回包括行末换行符的一个完整行。当一个空的字符串被返回时,表示文件末已经到达。

最后,使用 close 关闭这个文件。文件读到的内容已经以换行符结尾,所以在 print 语句上使用逗号消除自动换行。

储存器

python 提供一个标准的模块 pickle。可以在文件中储存任何 python 对象,之后可以把它完整无缺地取出来,被称为 持久地 储存对象。

另一个 cPickle,功能和 pickle 模块完全相同,用 C 语言编写,比 pickle 快1000倍。

# -*- coding: utf-8 -*-
# Filename: using_pickling.py

import cPickle as p
#import pickle 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

首先,使用 import..as 语法,以便于使用更短的模块名称。

储存 过程:首先以写模式打开一个 file 对象,然后调用储存器模块的 dump 函数把对象储存到打开的文件中。

取储存 过程:使用 pickle 模块的 load 函数的返回来取回对象。

时间: 2024-08-24 23:21:46

A Byte of Python 笔记(10)的相关文章

python笔记10

rabbitmq消息队列 server端 1 #!/usr/bin/env python 2 import pika 3 4 connection = pika.BlockingConnection(pika.ConnectionParameters( 5 'localhost')) 6 channel = connection.channel() 7 8 #声明queue 9 channel.queue_declare(queue='hello') 10 11 #n RabbitMQ a me

A Byte of Python 笔记(5)

第7章  函数 函数是重要的程序段.它们允许你给一块语句一个名称,然后你可以在程序的任何地方使用这个名称任意多次地运行这个语句块.这被称为 调用 函数. 定义函数 函数通过 def 关键字定义.def 关键字后跟一个函数的 标识符 名称,然后跟一对圆括号.圆括号中可以包括一些变量名,该行以冒号结尾.接下来是一块语句,它们是函数体. # -*- coding:utf-8 –*- # Filename: function1.py def sayHello(): print 'Hello World!

A Byte of Python 笔记(8)

第10章  解决问题--编写一个 python 脚本 程序功能:为所有重要文件创建备份 设计: 1.需要备份的文件和目录由一个列表指定 2.备份应该保存在主备份目录中 3.文件备份称一个 zip 文件 4.使用标准的 zip 命令,通常默认地随 Linux/Unix 发行版提供.Windows 用户可以使用 Info-Zip 程序.另外我们可以使用任何存档命令,为了从脚本中传递参数,只要有命令行界面即可. 解决方案 . . . 实在不想看了,稍后再说....

A Byte of Python 笔记(11)异常:try..except、try..finally

第13章 异常 当你的程序中出现某些 异常的 状况的时候,异常就发生了. 错误 假如我们把 print 误拼为 Print,注意大写,这样 Python 会 引发 一个语法错误. 有一个SyntaxError被引发,并且检测到的错误位置也被打印了出来.这是这个错误的错误处理器 所做的工作. try..except 我们尝试读取用户的一段输入.按Ctrl-z(Linux 用户按 Ctrl-d),看一下会发生什么. Python引发了一个称为EOFError的错误,这个错误基本上意味着它发现一个不期

A Byte of Python 笔记(7)

第9章 数据结构 数据结构,即可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python 有三种内建的数据结构--列表.元组和字典. list = ['item1', 'item2', 'item3', 'item4'] len(list) 列表长度 list.append('item5') 为列表添加一个项目 sort(list)  对列表进行排序 del(list[0])  删除列表中的第一个元素 tuple = ('item1', 'item2', 'item3', 'i

Python 笔记 #10# Histograms

1.Build a histogram In [1]: help(plt.hist) Help on function hist in module matplotlib.pyplot: hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, lo

python基础教程_学习笔记10:异常

异常 什么是异常 Python用异常对象来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行: >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by

Python 读取csv报错编码问题 : UnicodeDecodeError: &#39;utf-8&#39; codec can&#39;t decode byte 0x87 in position 10: invalid start byte

1.报错信息 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x87 in position 10: invalid start byte 2.解决方法 查找相关资料,发现一个棒棒的解决方法: 首先把csv文件以记事本的格式打开,默认保存是ANSI编码,我们应该手动修改成utf-8 ===>(如果记事本打开后是乱码,我们可以把csv数据粘贴到记事本上后保存) 3.接下来可以愉快的读文件咯 with csv23.open_csv(r'C:\

Byte of Python学习笔记(2)——回文练习

Byte of Python 第111页有关回文的作业练习,原题为:要想检查文本是否属于回文需要忽略其中的标点.空格与大小写.例如,"Rise to vote, sir."是一段回文文本,但是我们现有的程序不会这么认为.你可以改进上面的程序以使它能够识别这段回文吗?如果你需要一些提示,那么这里有一个想法 :使用一个元组 来保存所有需要禁用的字符,然后使用成员资格测试来确定一个字符是否应该被移除,即 forbidden = ( ! ,? , . , ...).--原书注 问题的关键在于如