一般的输入输出函数:input()和print()
something = input("Enter text: ")print("you hava entered:",something)
文件I/O
注意:除了文本字符串,二进制也可以读和写
一个常用的实例:
# 打开文件进行 'w'riting 写操作 f = open('poem.txt', 'w') # 将文本写入到文件 f.write(poem) # 关闭文件 f.close() # 如果没有指定文件打开方式 # 默认使用 'r'ead 读模式 f = open('poem.txt') while True: line = f.readline() # 零行意味着 EOF 文件结尾 if len(line) == 0: break # `line` 中已经自带换行了 # 因为它是从文件中读取出来的 print(line, end='') # 关闭文件 f.close()
open()函数
python内置的函数,打开一个文件,创建一个file对象的主要参数
file = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None)
- file:必须,文件路径的字符串值
- mode:文件打开模式:只读,写入,追加等。该参数是非强制的,默认为只读(r)
- buffering:访问文件时的寄存策略,0表示不寄存;1表示会寄存行;大于1的值,值表示寄存区的缓冲大小;负值表示寄存区缓冲大小为系统默认
- 其他重要的encoding一般使用utf8;errors报错级别;newline区分换行符
mode的比较直观的图:具体的模式需要在应用中实践
file对象属性
- closed :是否已被关闭,是返回True,否则返回False
- mode:返回被打开文件的访问模式
- name:返回文件名
file对象的主要方法
file.close():关闭文件,关闭文件后不可进行读写
file.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
file.next():返回文件下一行
file.read([size]):从文件读取指定的字节数,如果未给定或为负则读取所有
file.readline([size]):读取整行,包括 "\n" 字符
file.readlines([sizeint]):读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力
file.write(str):将字符串写入文件,返回写入的字符的长度
file.writelines(sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符
os模块
这是一个处理文件和目录的内置模块,包含一些
os.chmod(),os.getcwd(),os.mkdir(),os.remove()等方法........我感受到了linux文件操作命令的气息,有兴趣的可以自行学习,内容太多,不一一例举
Pickle
python中的一个标准模块,可以将任何简单的 Python 对象(二进制)存储在文件中,然后可再次取回,这个过程也被称为持久化存储对象
几个过程:
1、open:在前面讲的open()函数中,mode参数只列出了和文本字符串相关的模式,还有一种是二进制模式
open(file,mode)
b:二进制模式
wb:二进制格式打开一个文件用于只写。文件存在则打开不存在则创建新文件,从开头开始编辑,即原有内容会被删除。一般用于非文本文件如图片等
rb:二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等
2、pickling:先以二进制写入模式 open 文件,然后调用dump 函数将对象保存到文件 file 中去
3、unpickling :之后,使用load 函数来检索对象并返回
示例:
import pickle # 这里我们将存储对象的文件的名称 shoplistfile = 'shoplist.data' # 要买的东西的清单 shoplist = ['apple', 'mango', 'carrot'] # 写入文件 f = open(shoplistfile, 'wb') # 将对象存储到文件 pickle.dump(shoplist, f) f.close() # 销毁 shoplist 变量 del shoplist # 从存储中读回 f = open(shoplistfile, 'rb') # 从文件加载对象 storedlist = pickle.load(f) print(storedlist)
来源:https://www.cnblogs.com/yb38156/p/12498268.html