12文件操作

一计算机的内存分为硬盘和运行内存。

硬盘是用来存文件的,除非手动删除,否则不会销毁。
运行内存是用来存储,程序运行过程中的数据,当程序运行结束后自动销毁。
如果希望程序中产生的数据,在程序运行结束后不销毁,就需要将数据存到硬盘
中,就是需要存在文件中。
2.程序中存储的常用的文件:
txt文件,json文件,plist文件,数据库文件。
图片文件(png,jpg)音频文件(mp3,wav),视频文件。。。。
3.文件操作:--操作文件的内容
步骤:
打开文件---操作文件(读\写)
关闭文件---
"""

2.1打开文件

"""
open(file,mode="r",encoding="utf-8")
分别是:文件地址,打开的方式,文本编码的方式
以指定的方式打开指定的文件,并返回对象。
file 文件的路径:
可以传文件的决定路径和相对路径
绝对路径:文件在计算机中的路径
相对路径:./ 表示当前目录,(当前目录所在的就是当前这个代码所在的文件夹。)
../当前目录的上层目录。
在windows中打开的文件的路径是反斜杠,前面加个 "r"就行了。不然要报错。
mode:
文件袋饿打开方式,决定文件打开后的操作,能读还是写,r/w,操作文件的时候的数据是什么类型,文本还是二进制,(t/b).
r--只读
w--只只写
a---只写,
t--文本数据
b---二进制数据
没写就是默认是文本的数据,
r(rt/tr)--打开文件后只能进行读操作,读出来的数据是字符串。
rb/br-----打开文件后只能进行读操作,读出来的数据是二进制。
w--相当于w/t和t/w---打开的文件只能进行写的操作,写入的是文本就是。还能打开的时候先清空文件。
wb/bw-----打开文件后只能进行写的操作,写入的是二进制,打开清空原文件
a(at/ta)---打开文件后只能进行写的操作,写入的是字符串,打开的时候不清空原文件,
ab/ba----打开文件后只能进行写的操作,写入的是二进制的数据,打开的时候不会清空文件。

注意:a,w在打开文件的时候,如果没有文件,就自动创建,r打开的时候如果没有文件,会报错。

encoding ---文本文件的编码方式,只能以t的方式打开文本文件的时候可以直接赋值。
unicode 转换成 utf-8和gbk的时候都是要encode(编码)
utf-8,gbk 转换成unicode的时候要decode.

2.2操作文件
读操作,写操作
文件.read()--支持所有的文件

读文件就是读光标,读一行光标在一行末尾,如果在读全部就是从一行末尾开始。
f.seek(n) 光标移动到文件的开头,将读写位置移动到第N个位置

文本文件打开方式带b,读出来的是二进制的数据。
二进制的在读取的数据的时候必须带b ,除了文本以外的数据。
2.3写的操作
文件对象.write(内容)--将指定的内容写入到指定的文件中。
如果写的时候带b,写入的数据必须是二进制。
2.4数据的持久化
1.需要数据的时候不是在程序中直接给初始值,而是从文件中直接读值
2.需要持久化的数据要保存在文件中
4.打开后作用域后就会自动关闭。with open().......

"""
tex = open("./testtxt", "r", encoding="utf-8")
cont=tex.read()
print(cont)

读一行。。。。。。

tex=open("./testtxt","r",encoding="utf-8")
tex.readline()
tex.seek(0)#这个时候再把光标移动到开头
cont=tex.read()
print(cont)

读指定文本文件中的内容,一行一行的读,读完为止。

tex = open("./testtxt", "r", encoding="utf-8")
while True:
tex1 = tex.readline()
if not tex1:
break
print(tex1)
tex.close()

写入文件

f1=open("./testtxt", "a", encoding="utf-8")
f1.write("我是不会清空的,我是a")
f1.write("我是会清空的,我的写入方式是W")

练习,在一个程序中用一个变量来记录当前程序启动的次数。

f=open("./test", "r", encoding="utf-8")
count=int(f.read())
print(".........",count)
count+=1
f=open("./test", "w", encoding="utf-8")
f.write(str(count))
with open(r"D:\项目\预科项目\水管工人\水管工人.jpg","rb") as file3:
file2=file3.read()
print(file2)

每次运行程序添一个学生,要求之前添加的还在。

name=input("请输入名字:")
with open("./student_list.txt","a",encoding="utf-8") as file_s:
fil4=file_s.write(name)
with open("./student_list.txt", "r", encoding="utf-8") as file_s2:
file5 = file_s2.read()
print(file5)

怎么将字符串转换成列表?

eval()将字符串去掉引号后本省就是列表,字典。

eval()将字符串转换成容器型类型的数据,要求字符串去掉引号后本身就是一个合法的。

二json数据格式。

import json #json是python提供的专门处理json数据的,
"""
json是一种数据格式 ,通用的。
所有的语言都有json数据格式。
"""

json数据格式:

1.一个json只有一个数据

2.唯一的这个数据必须是json支持的数据类型的数据。

"""
json支持的数据类型有哪些:数字类型--
1.包括所有的数字,复数只有python支持,并且支持科学计数法。数字直接写。
2.字符串:文本数据,只能使用双引号引起来,"hello",支持转义字符和编码字符,"abc\n123"
3.布尔:只有true 和false
4.空值: null(表示空)
5.数组(array):[元素1,元素2,元素3.。。。。。。。。]里面的元素可以是json支持的任何类型的数据。
[100,200,"abc",true,false,null]
6.字典: {key1:value1,key2:value2,key3:value3}---要求key必须是字符串。
"""

1.json转python,转换规律

"""
json python
数字 in/flaot
字符串 字符串:双引号一般变成单引号
布尔 布尔:true-True false---False
null None
数组 列表
字典 字典

json.loads()将json格式的字符串换成python对应的数这个对应的数据。
注意:要求这个字符串去掉引号的内容必须是json格式的数据。
"""
result=json.loads('"1000"')
print(result)
result2=json.loads('true')
print(result2)

2.python 转json

"""
(1)转换的规律:
python json
int/float----数字
字符串--------字符串 单引号变成双引号
布尔值---------True---true False---false
None null
列表/元组 数组
字典 字典
方法:dumps(数据)--将python数据转换成json格式的字符串。
"""
res=json.dumps(100)
print([res])

['100']

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容