Python文件操作

作者: 田阅川 | 来源:发表于2019-01-11 11:37 被阅读0次

前言

文件的读写操作是一门编程开发语言的基础,Python内置了读写文件的函数,用法和C是兼容的。

我们先解释一下文件读写的本质,在Linux中,分为普通文件和特殊文件,其中特殊文件是指操作系统将所有设备都作为文件来处理。

我们这里处理的是普通文件,它是一组数据集合,存放在磁盘上。读操作也就是将磁盘中的内容读到内存中进行处理,写操作也就是将内存中的数据持久化到磁盘上。

文件操作

文件类型

  1. 文本文件 - 这类文件以文本的ASCII码形式存储在计算机中。它是以"行"为基本结构的一种信息组织和存储方式。
  2. 二进制文件 - 这类文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。

字符编码

对于文本来说,字符编码比较重要,在Python中也经常会出现字符编码的异常问题,我们需要进行各种转换如encode和decode操作。以下几个概念必须熟记于心:

  1. 在Python2x中默认字符编码是ASCII, 而在Python3里默认是utf8
  2. unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf8(占1-4个字节)
  3. 在Pyhton3中encode,在编码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string
  4. unicode是离用户更近,bytes是离计算机更近

文件操作

一般来说,操作一个文件,会用到open, write, read, close等几个函数,由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。

所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现,但是每次都这么写实在太繁琐。

所以,Python引入了with语句来自动帮我们调用close()方法:

来看一个例子:

fpath = r'./test.txt'

with open(fpath, 'w') as f:
    f.write('Hello, world!')


with open(fpath, 'r') as f:
    s = f.read()
    print(s)

输出:
Hello, world!

通过with操作可以极大的简化文件操作,这和try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。

目录操作

通常文件都会以目录为单元进行组织,如果我们要操作文件、目录,可以通过

#创建目录
os.mkdir('test')


#删除目录
os.rmdir('test')


#修改目录名
os.rename('test1', 'test2')


#遍历当前目录
os.listdir('.') 

序列化与反序列化

什么是序列化与反序列化:

序列化Serialization将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

序列化的作用

序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。

pickle与cpickle

pickle是python标准库中提供序列化的功能模块,可以将内存对象非常方便的进行持久化操作。其中cpickle的速度更快,我们将在后面的章节中进行介绍。

import pickle
d = {"name": "xiaoT", "age":18}

#序列化到文件
f = open('dump.dat', 'wb')
pickle.dump(d, f)
f.close()


#反序列化到内存
f = open('dump.dat', 'rb')
d = pickle.load(f)
f.close()
print(d)

输出:
{'name': 'xiaoT', 'age': 18}

小结

在Python中,文件读写是通过open()函数打开的文件对象完成的。使用with语句操作文件IO是个好习惯。

原文地址

兔子先生 - Python文件操作

相关文章

  • 14.Python之文件操作

    Python之文件操作 文件操作通过Python中的内置函数open()对文件进行操作。文件操作需要如下几个参数:...

  • 第二节课:Python 操作文件 ——软件测试派

    学习目标:掌握 python 操作文件 python 提供内置函数 open()实现对文件的操作。 python ...

  • Python遍历目录并操作文件

    今天来使用python操作文件,包括根据模式查找文件、删除文件操作。 完整代码托管在python/find...

  • 解析Python中的文件操作

    1.简介 在Python中无需引入额外的模块来进行文件操作,Python拥有内置的文件操作函数(除了内置文件操作函...

  • Python 文件操作

    一. Python 读写 创建文件 Python中对文件,文件夹(文件操作函数)的操作需要涉及到OS 模块和 sh...

  • Python

    Python 创建文件 Python 对数据库进行操作--增删改查 Python 对csv进行操作 Python ...

  • python常用文件操作总结

    python 移动文件或文件夹操作。python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法...

  • python--文件的基本操作

    python编程中,文件是必不可少的。下面我们来学习python中文件的基本操作。 文件的基本操作: 在pytho...

  • Python常用语法二

    Python 字符串操作和文件操作以及其它Python能力补充 Python字符串操作 in和not in: 'x...

  • 文件操作

    Python基础教程 文件内容操作 python中的文件操作还是挺简单的,类似于php中的文件方法,精简好用。我们...

网友评论

    本文标题:Python文件操作

    本文链接:https://www.haomeiwen.com/subject/auztdqtx.html