美文网首页Python is Best
Python——文件存储

Python——文件存储

作者: So_ProbuING | 来源:发表于2017-09-21 20:55 被阅读1次

Python对文件操作的流程

  • 打开文件 得到文件句柄并赋值给一个变量
  • 通过文件句柄对文件进行操作
  • 关闭文件

    关于关闭文件,Python解析器在写入文件时会将写入的内容放到内置的一个缓冲区中,在程序执行结束时会将缓冲区的数据写入到文件中。所以我们最好在操作完文件后调用close方法关闭文件,及时让改动生效
    code

# 打开文件,得到文件句柄并赋值给一个变量
f = open('test', 'w', encoding='utf8')
# 操作文件
f.write('hello world')
# 关闭文件
f.close()

文件操作模式

  • 在上面的文件操作中,创建操作对象的open方法中,会指定一个文件的打开模式w,Python还有其它的操作模式

r 读取
w 写入 打开写作,先截写文件 就是在打开文件后将文件的所有内容截断再重新写入文件内容
x 创建一个新的文件然后以写入的方式打开
a 以写入的方式打开,并且在文件的最后拼接内容
b 二进制
t text mode(文本模式 默认的)

  • 打开一个磁盘文件,用于更新(读取和写入)
* r+ 读写模式  先读后写,会先将文件读到然后写到文件后面 光标起始位置在最开始
* w+ 写读模式  先写后读 会先以w打开文件就会情况文件全部的内容
* a+ 追加模式 (+可读) 光标起始位置在最后
* + 加上+意味着同时为输入和输出打开文件

U 通用换行模式(弃用)

文件对象方法

  • readlines() 返回整个文件内容的列表
  • read()
  • tell() 返回文件内部索引指针当前的位置。
    • 其中 英文数字占一个字符,中文占3个字符,注意此刻读出来的索引的位置和文件编码没有关系
  • writelines(list) 把列表内所有字符串写入文件中
f = open('test', 'r+')
print(f.tell())
# f.write('hello yourself it\'test ')
# time.sleep(100)
# f.close()
print(f.read(2))
print(f.tell())
f.tell()
  • seek 设置内部索引指针的位置
  • flush 把输出缓冲区刷到硬盘中,但不关闭文件
    • print(内容,结束,flush=True/False[是否即刻将缓冲区的内容刷新])
  • truncate(count) count 默认 -1 截断:截取文件的指定内容,默认从最开始的位置截取所有内容
  • with
    为了避免打开文件后忘记关闭,可通过with进行管理
with.open('log','r') as f:
    pass

当with代码执行完毕时候,内部会自动关闭并释放文件资源
在Py2.7后,with又支持同时对多个文件进行管理

with open('log1') as obj1,open('log2') as obj2:
    pass
  • 格式

with open(filepath1) as file对象...:
pass

with open('test', 'r', encoding='utf8') as file_read, open('56789', 'w', encoding='utf8') \
        as file_write:
    number = 0
    for read_line in file_read:
        number += 1
        if number == 3:
            read_line = ''.join([read_line.strip(), '王鑫\t', 'is Speaking\n'])
        file_write.write(read_line)

Python的文件支持

  • Python支持文本和二进制文件
    • 文本文件把内容表示为常规的str字符串,自动执行Unicode编码和解码,并且默认执行末行转换
    • 二进制文件把内容表示为一个特殊的bytes字符串类型,并且允许程序不修改地访问文件内容

在文件中存储并解析Python对象

  • 文件数据在脚本中一定是字符串,而写入方法不会自动地替我们做任何向字符串格式转换的工作
X, Y, Z = 30, 25, 33
S = 'Span'
D = {'a': 1, 'b': 2}
L = {1, 2, 3}
F = open('writeFile.txt', 'w', encoding='utf8')
F.write(S + '\n')
F.write("%s,%s,%s\n" % (X, Y, Z))
F.write(str(L) + '$' + str(D) + '\n')
F.close()

  • Python不会自动把字符串转换为数字或者其他类型的对象

eval函数

  • eval是Python内置函数,eval能够把字符串当做可执行程序代码

# D = {'a': 1, 'b': 2}
# L = {1, 2, 3}
# F.write(str(L) + '$' + str(D) + '\n')
direc_file = readF.readline()
direc_splite = direc_file.split('$')
directs = [eval(P) for P in direc_splite]
print(directs)
# [{1, 2, 3}, {'a': 1, 'b': 2}]

用pickle 存储Python原生对象

  • Pickle模块是能够让我们直接在文件中存储几乎任何Python对象的高级工具
import pickle
# 写入字典到文件
direct_a = {'a': 1, 'b': 2, 'c': 3}
F = open('pickleFile.txt', 'wb')
pickle.dump(direct_a, F)
F.close()
# 从文件取回字典
read_file = open('pickleFile.txt','rb')
direct_b = pickle.load(read_file)
print(direct_b)
# 输出
# {'a': 1, 'b': 2, 'c': 3}
  • pickle在内部将字典转成字符串形式
  • 在Python3.0 中 pickle化的对象的文件总是二进制的。因为pickle程序创建和使用一个bytes字符串对象。

相关文章

  • Python——文件存储

    Python对文件操作的流程 打开文件 得到文件句柄并赋值给一个变量 通过文件句柄对文件进行操作 关闭文件关于关闭...

  • Python的文件操作

    爬虫以后我们需要把数据存储到文件中去,本章主要讲解如何打开文件和读写文件。 Python打开文件 Python内置...

  • 【ceph】对象存储 - 使用python管理bucket

    简介:用python管理对象存储的bucket,创建bucket、查看bucket,上传文件、删除文件; 地址: ...

  • Python -读取,存储文件

    读文件 写文件 从控制台输入并保存 从一个文件读取写入到另一个文件中 Eg:将文件的参数读取,并计算总和,排序

  • 数据库代码 python

    python 插入数据库代码 存储工程学习 1.1python大文件分块下载,文件分块1024=1M 1.2 pa...

  • Python小白学习进行时---文件及异常处理(2018-06-

    一、文件操作 文件都有后缀,不同的后缀表示文件存储的方式不同。在Python中文件的操作: 1、打开文件 open...

  • Python——函数与模块和包

    Python函数与模块 Python中可以将函数存储在文件中,这个文件被称为模块。将模块导入到主程序中。impor...

  • 2021-05-21PythonMOOC深圳信息文件操作

    Python文件操作 写文本文件 案例:学生信息存储到文件 6.2 读文本文件 案例:从文件读出学生信息 6.3 ...

  • 爬树式遍历文件

    1. walk() 爬树式遍历文件 文件存储位置图: 举例,每个文件下面都有: 输出: 2.python os.l...

  • python读文件-20170905

    1.主要功能:(1)读取txt文件,(2)将文件内容存储到excel中 python读取文件时提示"Unicode...

网友评论

    本文标题:Python——文件存储

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