赞
踩
文件的组成为:文件路径、文件名主干、文件扩展名。
文件分为:文本文件和二进制文件
文本文件:专门存储文本字符数据
二进制文件:不能直接使用文字处理程序正常读写,必须先了解其结构和序列化规则,再设计正确的反序列化规则,才能正确获取文件信息。(计算机看的)
stdin(标准输入文件)标准输入文件对应输入设备,如键盘。
stdout(标准输出文件)
stderr(标准错误文件)标准输出文件和标准错误文件对应输出设备,如显示器。
open()用于打开文件,例如:
open(file, mode='r', buffering=-1)
close()用于关闭文件
with 语句用于自动关闭
为什么要关闭文件?
read为指定字节
readline为指定一行
- with open('file.txt', mode='r', encoding='utf-8') as f:
- print(f.readlines()) # 使用readlines()方法读取数据
write可以将指定字符串写入文件
- string = "Here we are all, by day; by night." # 字符串
- with open('write_file.txt', mode='w', encoding='utf-8') as f:
- size = f.write(string) # 写入字符串
- print(size) # 打印字节数
writelines则为一行
- string = "Here we are all, by day;\nby night we're hurl'd By dreams,
- each one into a several world."
- with open('write_file.txt', mode='w', encoding='utf-8') as f:
- f.writelines(string)
编码:
tell方法用于读写位置
- with open('file.txt') as f:
- print(f.tell()) # 获取文件读写位置
- print(f.read(5)) # 利用read()方法移动文件读写位置
- print(f.tell()) # 再次获取文件读写位置
seek方法可以控制读写位置,也可实现随机读写
- with open('file.txt') as f:
- print(f.tell()) # 获取文件读写位置
- print(f.read(5)) # 利用read()方法移动文件读写位置
- print(f.tell()) # 再次获取文件读写位置
seek只允许相对于文件开头移动文件位置,若在参数from值为1、2的情况下对文本文件进行位移操作,将会产生错误。
- with open('file.txt') as f:
- f.seek(5,0) # 相对文件开头移动5字节
- f.seek(3,1)
若要对当前位置或是末尾进行位移则需二进制方法
- with open('file.txt','rb') as f:
- f.seek(5,0)
- f.seek(3,1)
基于维度的数据分类
一二维读写用CSV(也称字符分隔值)
注意:以纯文本形式存储表格数据
文件的每一行对应表格中的一条数据记录
每条记录由一个或多个字段组成 字段之间使用逗号(英文、半角)分隔
示例:
- csv_file = open('score.csv')
- lines = []
- for line in csv_file:
- line = line.replace('\n','')
- lines.append(line.split(','))
- print(lines)
- csv_file.close()
多维则用JSON
注意:数据存储在键值对(key:value)中,例如“姓名”: “张华”。
数据的字段由逗号分隔,例如“姓名”: “张华”, “语文”: “116”。
一个花括号保存一个JSON对象,例如{“姓名”: “张华”, “语文”: “116”}。
一个方括号保存一个数组,例如[{“姓名”: “张华”, “语文”: “116”}]。
利用json模块的dumps()函数和loads()函数可以实现Python对象和JSON数据之间的转换。
dumps函数对python对象进行转码
loads将JSON数据转换为符合Python语法要求的数据类型
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。