当前位置:   article > 正文

python总结——第七章 文件流_python 文件流

python 文件流

第七章

文件的组成为:文件路径、文件名主干、文件扩展名。

 文件分为:文本文件和二进制文件

文本文件:专门存储文本字符数据

二进制文件:不能直接使用文字处理程序正常读写,必须先了解其结构和序列化规则,再设计正确的反序列化规则,才能正确获取文件信息。(计算机看的)

stdin(标准输入文件)标准输入文件对应输入设备,如键盘。

stdout(标准输出文件) 

stderr(标准错误文件)标准输出文件和标准错误文件对应输出设备,如显示器。

文件的操作

open()用于打开文件,例如:

open(file, mode='r', buffering=-1)

 close()用于关闭文件

with 语句用于自动关闭

为什么要关闭文件?

 read为指定字节

readline为指定一行

  1. with open('file.txt', mode='r', encoding='utf-8') as f:
  2. print(f.readlines()) # 使用readlines()方法读取数据

write可以将指定字符串写入文件

  1. string = "Here we are all, by day; by night." # 字符串
  2. with open('write_file.txt', mode='w', encoding='utf-8') as f:
  3. size = f.write(string) # 写入字符串
  4. print(size) # 打印字节数

writelines则为一行

  1. string = "Here we are all, by day;\nby night we're hurl'd By dreams,
  2. each one into a several world."
  3. with open('write_file.txt', mode='w', encoding='utf-8') as f:
  4. f.writelines(string)

编码:

 tell方法用于读写位置

  1. with open('file.txt') as f:
  2. print(f.tell()) # 获取文件读写位置
  3. print(f.read(5)) # 利用read()方法移动文件读写位置
  4. print(f.tell()) # 再次获取文件读写位置

seek方法可以控制读写位置,也可实现随机读写

  1. with open('file.txt') as f:
  2. print(f.tell()) # 获取文件读写位置
  3. print(f.read(5)) # 利用read()方法移动文件读写位置
  4. print(f.tell()) # 再次获取文件读写位置

 seek只允许相对于文件开头移动文件位置,若在参数from值为1、2的情况下对文本文件进行位移操作,将会产生错误。

  1. with open('file.txt') as f:
  2. f.seek(5,0) # 相对文件开头移动5字节
  3. f.seek(3,1)

 若要对当前位置或是末尾进行位移则需二进制方法

  1. with open('file.txt','rb') as f:
  2. f.seek(5,0)
  3. f.seek(3,1)

基于维度的数据分类

 

 

 一二维读写用CSV(也称字符分隔值)

注意:以纯文本形式存储表格数据

           文件的每一行对应表格中的一条数据记录

          每条记录由一个或多个字段组成 字段之间使用逗号(英文、半角)分隔

示例:

  1. csv_file = open('score.csv')
  2. lines = []
  3. for line in csv_file:
  4. line = line.replace('\n','')
  5. lines.append(line.split(','))
  6. print(lines)
  7. csv_file.close()

多维则用JSON

注意:数据存储在键值对(key:value)中,例如“姓名”: “张华”。

数据的字段由逗号分隔,例如“姓名”: “张华”, “语文”: “116”。

一个花括号保存一个JSON对象,例如{“姓名”: “张华”, “语文”: “116”}。

一个方括号保存一个数组,例如[{“姓名”: “张华”, “语文”: “116”}]。

 json

利用json模块的dumps()函数和loads()函数可以实现Python对象和JSON数据之间的转换。

dumps函数对python对象进行转码

 

loads将JSON数据转换为符合Python语法要求的数据类型

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/927218
推荐阅读
相关标签
  

闽ICP备14008679号