- 一、Input 与 Output
- 二、文件I/O
信息的输入与输出统称为Input/Output,简写为I/O,此外I/O不仅仅指键盘输入,屏幕打印输出,还有文件的输入与输出。 一、Input 与 Output
1) input
""" !!!返回字符串类型 要得到需要的数据类型 需要进行数据类型强制转换 """ input()
2) output
a、普通输出
print(…)
多个变量之间用逗号隔开,print函数会依次打印,遇到逗号会用空格代替,且print函数可以进行自动地计算。
b、格式化输出
使用方式:在%后面加上相应的格式符以占位,再进行替换和输出。
示例:
# %s 代表字符串 %d 代表数值 name,age='wy',20 print('name: %s, age: %d' % (name,age)) print('%s,%d' %(name,age)) #output # name: wy, age: 20 # wy,20二、文件I/O
定义数据文件(即文件路径)——获取文件对象——读取文件内容——关闭文件对象
1)函数说明
open、read、readline、readlines、write、close
#打开/创建文件 file_object=open(文件路径,访问模式) # 返回文件对象 """ 读取方式: 1.read(size) 读取全部数据,直至达到定义的字节数上限size,省略则默认读取文件的所有数据 按字节读 返回:内容字符串,所有行合并为一个字符串 2.readline() 读取一行数据,直至达到定义的字节数上限 按行读 返回:内容字符串 3.readlines(size) 读取文件的全部数据,直至达到定义的字节数上限size,省略则默认读取文件的所有数据 按行读,一行一行读 返回内容列表,每行数据作为列表的一个元素 """ file_object.read('data.txt','r+') file_object.read() #一字节一字节地读,效率较低 file_object.readlines() #一行一行读但是返回的是列表形式,列表的元素即为文件一行一行的内容 file_object.write(str) #使用文件对象写入字符类型的内容,默认为空 file_object.close() #关闭文件 #with open 的形式 # 读取整个文件 with open('pi_digits.txt') as file_object: contents = file_object.read() print(contents) ''' 1.with open 形式不需要调用close()将文件关闭,python会自动关 2.read函数读取整个文件的内容,相比于原始文件,会在末尾多一个空行。——因为read() 到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一个空行。要删除多出来的空行,可在print 语句中使用rstrip() : ''' with open('pi_digits.txt') as file_object: contents = file_object.read() print(contents.rstrip()) #逐行读取文件 filename = 'pi_digits.txt' with open(filename) as file_object: for line in file_object: print(line) #open函数返回的对象只在with代码块内有效 with open(filename) as file_object: lines = file_object.readlines() for line in lines: print(line.rstrip())
2)文件路径
1.当文件与当前程序文件在同一目录下,则只需要文件名即可,
2.相对路径:不在同一目录,但在该目录的子目录中,则可以使用相对路径(相对于当前运行的程序所在的目录)
3.绝对路径
#需要用\表示 with open('C:\Users\ann\Desktop.txt') as file_object: contents=file_object.read() print(contents)
3)模式
open(文件路径,模式)
'w’表示以写入的方式打开文件,覆盖写;
---- open返回的文件对象名.write(写入的内容)
'r’表示以读取的方式打开文件;
'a’表示以追加
'r+'表示既可以读取又可以写入
'a+'表示可以读,可以追加
注意:
1)python只能将字符串写入文本文件,将数值数据存储到文本文件中, 必须使用str()函数将其转换为字符串格式
2)write不会在写入的文本末尾添加换行符,因此需要使用空格、制表符、空行等符号来设置输出格式
3)以w的模式写入文件,如果文件不存在,则会自动创建;如果已经存在,则会先清空再写入 如果不想之前的内容被覆盖,可以以追加的方式写入
4)序列化
我们可以将字符串写入本地文件,但是不能是一个对象(列表,字典,自定义类对象等)
TypeError: write() argument must be str, not list,所以需要将对象进行序列化才能写入文件中,Python提供了JSON模块实现数据的序列化与反序列化。
quad
JSON(JavascriptObjectNotation,JS对象简谱) 是一种轻量级的数据交换库,JSON的本质是字符串
1.序列化:
将要存储的数据,先进行序列化,“去掉” 原本的数据类型,变成字符串,再写入文件
#dump和dumps json.dumps(a) #将对象a转化为字符串 1.dumps(): import json #先import模块json with open('1.json','w') as file: a=[1,2,5] r=json.dumps(a) print(r,type(r)) #[1, 2, 5]file.write(r) 2.dump() #json.dump()接受两个参数:要存储的数据,用于存储数据的文件对象 import json with open('1.json','w') as file: a=[1,2,5] json.dump(a,file)
2.反序列化:
从文件中读出数据,进行反序列化,“恢复” 数据该有的类型
#loads,load 1.loads() import json with open('1.json') as file: content=file.read() print(content,' ',type(content)) content=json.loads(content) print(content,' ',type(content)) #输出 [1, 2, 5][1, 2, 5] 2.load() import json with open('1.json') as file: content=json.load(file) print(content,' ',type(content)) #输出 [1, 2, 5]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)