欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 Python基础语法十三:文件操作

程序员文章站 2022-07-07 19:58:30
1. 文件操作1.计算机数据的存储计算机的存储系统分为运行内存和硬盘两种运行内存:用来保存程序运行过程中产生的数据,程序运行结束后会自动销毁硬盘 :用来保存文件,保存在文件中的数据就是保存在硬盘中的,除非手动删除,否则数据会一直在2.数据持久化数据持久化就是将数据以各种形式保存在硬盘中(保存到本地文件中)3.文件操作文件操作基本步骤:打开文件 -> 操作文件(读、写) -> 关闭文件打开文件open(file, mode=‘r’, encoding=None) - 以指定...

1. 文件操作

1.计算机数据的存储

计算机的存储系统分为运行内存和硬盘两种
运行内存:用来保存程序运行过程中产生的数据,程序运行结束后会自动销毁
硬盘 :用来保存文件,保存在文件中的数据就是保存在硬盘中的,除非手动删除,否则数据会一直在

2.数据持久化

数据持久化就是将数据以各种形式保存在硬盘中(保存到本地文件中)

3.文件操作

文件操作基本步骤:打开文件 -> 操作文件(读、写) -> 关闭文件

打开文件

open(file, mode=‘r’, encoding=None) - 以指定的模式打开指定的文件,并且返回一个文件对象
说明:
file - 文件路径,字符串类型
绝对路径:文件或者文件夹的全路径(一般不写绝对路径)
相对路径:只写文件绝对路径的一部分,另一部分用特殊符号代替
特殊符号:./ -> 表示当前路径 (可以省略)
…/ -> 表示当前目录的上层目录
…/
mode - 打开方式,字符串类型
第一组:控制操作类型:
r - 以只读的方式打开文件(默认值)
w - 以只写的方式打开文件,打开前会先清空原文件的内容
a - 以只写的方式打开文件,不会清空
第二组:控制数据类型(文本数据-str/二进制数据-bytes):
t - 操作的数据是文本数据(默认值)
b - 操作的数据是二进制数据
注意:每一组只选一个,两组值进行组合使用
encoding - 文本编码方式;直接写’utf-8’
注意:如果打开方式中带b,就不能设置encoding

close()

open(’/Users/zhangzhishuai/Desktop/千峰/01语言基础/day14-文件操作/files/text.txt’)
open(’./files/text.txt’)

2.文件操作的读写操作

1.打开文件方式一:

文件对象 = open()
操作文件对象
文件对象.close

with open(文件路径, 文件打开方式, encoding=文本编码方式) as 文件对象:
操作文件对象

f = open(‘files/text.txt’, encoding=‘utf-8’)
print(f.read())
f.close()
with open(‘files/text.txt’, encoding=‘utf8’) as f:
print(f.read())

2.文件读操作

1)文件对象.read() - 从文件读写位置开始,读到文件的结尾(默认情况下读写位置在开头)
2)文件对象.readline() - 读文本文件的一行内容,从当前读写位置读到一行的结束
3)文件对象.readline() - 一行一行的读,读完为止,返回的是一个列表,列表元素是每一行的内容

with open(‘text2.txt’, ‘r’, encoding=‘utf8’) as f:
print(‘第一次’, f.read())
print(‘第二次’, f.read())
with open(‘text2.txt’, ‘r’, encoding=‘utf8’) as f:
print(‘第一次’, f.readline())
print(‘第er次’, f.readline())

3.数据持久化

1.数据持久化的基本操作

a. 数据保存在文件中
b.需要数据时候从文件中取读数据
c.当数据发生改变的时候,对保存数据的文件进行更新

注意:如果以读的方式打开一个不存在的文件,会报错,如果是以写的方式打开一个不存在的文件,不会报错,而且会自动新建这个文件
练习:写一个程序,统计这个程序启动的次数

with open('text2.txt', encoding='utf8') as f:
    count = int(f.read())
    count += 1
    print(count)
with open('text2.txt', 'w', encoding='utf8') as f:
    f.write(str(count))

4.字典和列表的数据持久化


names = [{'name': '张三', 'age': '34', 'tel': 213},
         {'name': '张三', 'age': '34', 'tel': 213},
         {'name': '张三', 'age': '34', 'tel': 213}
        ]
#1.字典和列表的写操作 先将列表或字典转换成字符串
with open('text2.txtf', 'w', encoding='utf-8') as f:
    f.write(str(names))
#2.字典和列表的读操作
with open('text2.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    print(content)
    print(type(content))
    new_content = eval(content)
    print(new_content)
    print(type(new_content))
    for item in new_content:
        print(item)
def add_students():
    name = input('姓名:')
    age = input('age:')
    tel = input('tel:')
    stu = {'name': name, 'age': age, 'tel': tel}
    with open('text2.txt', 'r', encoding='utf-8') as f:
        all_students = eval(f.read())
    all_students.append(stu)
    with open('text2.txt', 'w', encoding='utf-8') as f:
        f.write(str(all_students))
add_students()

5.json数据

1.什么是json
import json
1)存在的意义
json就是不同编程语言之间进行数据交流的一种通用格式
2)概念
json是一种数据格式
a.一个json有且只有一个数据
b.这个数据是json支持的数据类型的数据
3)json支持的数据类型
数字类型 字符串 布尔 数组 字典(对象) 空值(null)
数字类型:所有的数字对应的类型 支持科学计数法
字符串:只能是双引号引起来,支持转义字符
布尔:true false 都要小写
数组:相当于Python的列表
字典:相当于Python字典但是字典的key只能是字符串,{key1: value1, key2:value2…}
空值:null 相当于Python中的none

2.json转Python
json Python
数字类型 数字
字符串 字符串(可能会将双引号变成单引号)
布尔 布尔(小写变大写)
数组 列表
字典 字典
空值(null) 空值(none)
json.loads(字符串) : 将json格式的字符串转换成Python对应的数据(这的字符串的内容必须满足json格式)

3.Python转json
Python json
int/float 数字类型
字符串 字符串都变成双引号
布尔 布尔(大写变小写)
列表/元组 数组
字典 字典
None null
json.dumps(数据) : 将指定的Python数据转换成json格式的字符串

result = json.loads('"abc"')
print(result)
print(type(result))

result = json.dumps([1, 'qeq', True, None])
print(result)
print(type(result))

本文地址:https://blog.csdn.net/shuai19970911/article/details/107173781