Python与医药数据处理 第七章

第七章 文件

7.1 文件

文件的分类:文本文件、二进制文件

文件的打开方式:文本文件方式、二进制文件方式

无论是文本文件还是二进制文件都有两种打开方式,二者相互独立互不相关。文件的类型决定的是其存储的特点,打开方式类型决定的是其打开呈现的特点

7.2 文件操作

7.2.1 文件的操作步骤

无论是文本文件还是二进制文件都统一进行操作步骤:打开 — 操作 — 关闭

7.2.2 打开、关闭文件

<变量名> = open(<文件名>, <打开模式>) 用于打开文件操作,返回一个 stream 对象

文件名:如果操作文本与 .py 程序位于同一目录下,可直接写文件名称,如果不在,也可以写文件的具体目录,如

img

打开模式:

r:只读,如果文件不存在报错 'FileNotFoundError'(默认值)
w:覆盖写,文件不存在则创建,文件存在则覆盖原内容
x:创建写,文件不存在则创建,文件存在报错 'FileExisitsError'
a:追加写:文件不存在则创建,文件存在则在后面接着写

b:二进制文件模式
t:文本文件模式(默认值)

+:与 r、w、x、a 一起使用,表示在原功能基础上增加功能,同时支持读和写(默认缺省)

上面七个元素被分为三部分,打开模式应由这三部分各一个内容组成,如果前两个缺省,则选用相应的默认值,最后一个缺省,则默认不扩展功能

<变量名>.close():关闭文件,释放对文件的控制权和独占状态

7.2.3 读文件

img

for line in fi.readlines():
    print(line)

该段代码中 readlines() 方法通过将文件内容全部读到一个列表中,再进行取行元素,但是如果文件非常大,创建这样一个列表会极其占用内存,因此,我们可以优化:

for line in fi:
    print(line)

文件被存储到变量名之后,其本身就是被视为一个行序列,因此可以直接从其中遍历行

7.2.4 写文件

img

write() 方法主要用于字符串的写入

with open('example.txt', 'w') as f:
    f.write("Hello")       # 写入 "Hello"
    f.write(" World!\n")   # 接着写入 " World!" 并换行

writelines() 方法可以理解为 readlines() 的逆过程,可以把列表等序列写入到文件

lines = ["First line\n", "Second line\n", "Third line\n"]
with open('example.txt', 'w') as f:
    f.writelines(lines)  # 写入所有行,依赖列表中已有的换行符

7.2.5 移动文件指针

文件指针,可以理解为“光标”的位置,写完文件之后,指针位于文末的位置,如果此时想要读取整篇文档,应当将指针移动到文件开头,重新扫描文件并阅读

img

7.3 一、二维数据文件操作

7.3.1 一、二维数据的存储

一维数据常写入 .txt .csv .tsv 文件中,写入前一般先根据文件格式要求格式化为特定字符分割的字符串(如空格,西文逗号,西文分号)

二维数据由多条以为数据组成。二维数据通常存储于 .csv .tsv .txt 有时也存为 .json 文件

.csv 二维数据存储严格遵循以下规则:

  1. 纯文本格式,单一编码表示字符
  2. 可以不包含列名,包含时列名放在第一行
  3. 每行表示一个一维数据,多行表示二维数据
  4. 以行为单位,开头不留空行
  5. 以西文逗号分割数据,即使列数据为空,也要保留逗号

7.3.2 一、二维数据的写与读

核心模块:

写文件通过 join() 语句完成,如果是二维,则连写两次

读文件通过 split() 语句完成,如果是二维,则连切两次,最后写入嵌套列表方便操作

具体方式见代码:

img

img

img

蓝色框出的为 读/写 操作的核心语句

posted @ 2025-06-25 04:32  凛凛雾  阅读(37)  评论(0)    收藏  举报