Python基础:文件操作

创建文件

myfile = open('hello.txt', 'w', encoding='utf8')  # 赋值给一个句柄myfile
# 创建一个叫hello.txt的文件  并且往里面写内容
myfile.write('旧人小表弟\n')        # 写内容
myfile.write('Hell wold!\n')       # 写内容
myfile.close()                     # 把文件关掉  释放内存

编码不指定默认ansi,参考之前的文章

打开文件

f1 = open('hello.txt', encoding='utf8')   # 打开/读取文件  读取文件时候的mode=r 可以不写
print(f1.read())                          # 读取全部内容  一次性读取文件里的所有内容
# print(f1.read())                         # 再读就没有了,类似迭代器

f2 = open('hello.txt', encoding='utf8')   # 重新打开文件
print(f2.readline())                      # 读取一行
print(f2.readline())                      # 读取一行
# print(f2.readline())                     # 文件一共就两行,再读就没有了,类似迭代器

l = open('hello.txt', encoding='utf8').readlines()    # 打开的同时读取全部内容放到一个列表l里
print(l)              # l是个列表 而不是文件句柄   可以使用列表的一些方法
for line in l:
    print(line, end='')     # for循环 遍历读取到文件内容的列表

with

# with 上下文方式   跳出代码块后会自动会释放 相当于自带close   一般做数据操作就用with
with open('hello.txt', encoding='utf8') as ll:     # 打开一个文件临时交给给变量ll
    for line in ll.readlines():    # for循环遍历readlines()取到的所有的文件内容
        print(line)

readlines()是把文件中每一行存到列表中

二进制文件

file = open('data.bin', 'rb').read()  # 打开一个二进制文件  读取所有内容并赋值给一个句柄file

序列化 反序列化

# 把Python对象写入到普通文件里
x, y, z = 1, 2, 3
l = [1, 2, 3]
f1 = open('data.txt', 'w')      # 创建一个data.txt文件 并且往里面写入内容
f1.write('{},{},{}\n'.format(x, y, z))    # 写入x,y,z
f1.write(str(l))                          # 把列表转换成字符串写入文件里
f1.close()                                # 关闭文件释放内存

chars = open('data.txt').read()
print('这个时候打印出来的仅仅是字符串', chars)

使用pickle模块实现简单的对象序列化

import pickle    # pickle模块
# 文件打开读取后默认是字符串
# 实际开发的时候读取这种对象用序列化方式  可以还原保留数据结构和状态  存的时候是什么类型 取出来还是什么类型

d = {'a': 1, 'b': 2}
f2 = open('data.ppp', 'wb')    # 创建二进制文件 后缀是什么都可以

pickle.dump(d, f2)  # 使用pickle模块下的方法   把d这个字典表放到f2这个二进制文件里
f2.close()   # 关闭文件

print(open('data.ppp', 'rb').read())   # 这样打开的是没有任何实际意义的二进制文件

f3 = open('data.ppp', 'rb')
data = pickle.load(f3)          # 转换成原来的对象值(还原成字典表)
print(data)                     # 打印字典表
print(data.get('b'))            # get字典表里的一个键

拓展:

Python中打开文件的方式(With open)

Python 读取大文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值