Python文件操作

1. 数据持久化

  1. 计算机存储数据
    默认情况下程序中的数据保存在运行内存中的,当程序运行结束后,在运行内存中保存的数据会自动销毁。如果希望在这次运行程序时可以使用上一次运行程序产生的数据,就必须把数据保存在硬盘中。硬盘保存数据时,保存数据的最小单位是文件。
  2. 数据持久化
    将数据以文件的形式保存在硬盘中。
  3. 文件操作
    基本流程:打开文件-文件读写-关闭文件.
    a. 打开文件
> open(file,mode='r',*,encoding=None)

a)file -> 需要打开的文件路径
文件路径可以写文件路径可以写相对路径。
绝对路径:文件在计算机中的全路径()
相对路径:在写文件路径时,用.代表当前目录,或者…代表当前目录的上次目录。(当前目录:当前代码文件所在的文件夹) 注意:如果要使用相对路径,被打开的文件必须放在工程中。路径./开头的可以省略。
b)mode-> 文件打开方式
用来决定打开文件之后能做什么。操作文件的时候数据对应的类型(是字符串还是二进制)。
给mode赋值时需要两组值
c)encoding -> 文本文件编码方式(只有在以t方式打开文件时才需要设置encoding)一般赋值‘utf-8’ ’gbk‘也是一种编码方式。
utf-8:在文本数据在存储的时候,ascil表中符号用一个字节来存储,一个中文用3个字节。可以对任何符号编码。
gbk:在文本数据在存储的时候,ascil表中符号用一个字节来存储,一个中文用2个字节。除了ascil和中文外不能对其他符号进行编码。
存储数据时使用编码值要和获取数据的时候对应的编码值一致。
第一组:决定打开后能做什么对应的值。
r -> 只读 打开不存在的文件报错
w -> 只写 打开的时候会清空原文件 打开不存在的文件不会报错,会新建
a -> 只写 打开的时候不会清空原文件内容, 打开不存在的文件不会报错,会新建。
第二组:决定操作文件的时候数据的类型
t -> 字符串
b -> 二进制(bytes)
每一组中选一个数据(如果第二组不选,相当于选t)

  1. 路径写法
# 绝对路径
open('/Users/ouya/Desktop/pythonProject2/files/abc.txt')
# 相对路径
open('./files/abc.txt')
  1. 打开方式
    r是只读
f = open('./files/abc.txt', 'r',)
f.read()

w只写,并且会清空原文件

f = open('./files/abc.txt','w')
f.write('90')

a只写,不会清空原文件

f = open('./files/abc.txt','a')
f.write('90')

t对应的类型是字符串

f = open('files/abc.txt', 'r')
result = f.read()
print(type(result))      # <class 'str'>

f = open('files/abc.txt', 'rt')
result = f.read()
print(type(result))      # <class 'str'>
f = open('files/abc.txt', 'rb')
result = f.read()
print(type(result))      # <class 'bytes'>
  1. 设置encoding
f = open('./files/student.txt', 'w', encoding='utf-8')
f.write('anxs')

f = open('./files/student.txt', 'r', encoding='utf-8')
print(f.read()) # anxs

b. 文件读写操作
读:
文件对象.read() -> 获取整个文件内容
文件对象.readline() -> 获取一行内容
文件对象.readlines() -> 获取整个文件内容,返回一个列表,列表中的元素是每一行内容(只能文本文件有效)

f = open('test.txt', encoding='utf-8')
result = f.read()
print(result)

写:
文件对象.write(数据)
文件对象.writelines(列表)

f = open('./files/abc.txt','a', encoding='utf-8')
f.write('abc')

3 关闭文件
文件对象.close()

f.close()
f.write('zz')

2. 文件操作实践

  1. 数据持久化步骤:
    确定需要持久化的数据
    创建保存需要持久化数据的文件
    确定文件初始内容(就是需要持久化数据的初始值)
    在程序中需要这个数据的时候从文件中获取这个数据
    在程序中修改数据后,必须将最新的数据写入文件中
    案例1 :打印程序运行次数
f = open('./files/student.txt', encoding='utf-8')
count = int(f.read())
f.close()

count += 1
print(count)

f = open('./files/student.txt', 'w', encoding='utf-8')
f.write(str(count))
f.close
name=input('输入:')
f = open('./files/student.txt', encoding='utf-8')
print(name)
# 更新数据 
f = open('./files/student.txt', 'a', encoding='utf-8')
f.write(name+' ')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值