赞
踩
一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,“哭都没地方哭了”。 默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放。
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。
open(文件名,访问模式) e.g. f = open(‘test.txt’, ‘w’)
如果文件不存在那么创建,如果存在那么就先清空,然后写入数据


""" mode: r: 只能读文件 w: 只能写入(清空文件内容) a+: 读写(文件追加写入内容) """ #1.打开文件 f = open('hello.txt',mode='a') ##文件是自己建立在当前目录,w写,a追加 #2.文件读写操作 f.write('java\n') #3.关闭文件(核心:打开之后必须关闭) """ 方法一: 调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源, 并且操作系统同一时间能打开的文件数量也是有限的: """ f.close()
""" with语句:python中的with语句使用于对资源进行访问的场合, 保证不管处理过程中是否发生错误或者异常都会自动执行规定的(“清理”)操作, 释放被访问的资源,比如有文件读写后自动关闭、线程中锁的自动获取和释放等。 seek:seek(offset, from)有2个参数: offset:偏移量 from:方向 0:表示文件开头; 1:表示当前位置; 2:表示文件末尾 1). 把位置设置为:从文件开头,偏移5个字节 2). 把位置设置为:文件最开始 3). 把位置设置为:文件最末尾 """ with open('hello.txt','w+') as f: #w+先清空在写 f.write('hello westos\n') ##写入文件 #先清空原来的hello,写入hello westos f.seek(0,0) ##移动指针到文件最开始 print("当前指针的位置:",f.tell()) f.seek(0,2) ##移动指针到文件末尾 print("当前指针的位置:", f.tell()) print(f.read()) ##读取文件内容
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。
这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)



import json
#1.将python对象编码成json字符串
users = {'user1':'westos',"age":18,"city":"西安"}
json_str = json.dumps(users)
with open('doc/hello.json','w') as f:
#ensure_ascii=False 中文可以存储成功
#indent=4缩进为4个空格
json.dump(users,f,ensure_ascii=False,indent=4)
print(json_str,type(json_str))
#2.将json字符串解码成python对象
with open('doc/hello.json') as f:
python_obj = json.load(f)
print(python_obj)
原文链接:https://blog.csdn.net/weixin_45174102/article/details/113983033
打开一个文件:
格式:open(name[, mode [, buffering]])
说明:
调用open函数之后,将得到一个文件对象。
假如在d盘根目录下存在一个名为’test.txt’的文件,可以通过以下语句打开它:
f = open(r'd:\test.txt')
在windows操作系统下,Python函数中文件名所包含的路径名有如下三种写法:
f = open(r'd:\test.txt')f = open('d:\\test.txt')f = open('d:/test.txt')Python中的文件对象有三种常用属性:
在文件读写完毕之后,要注意使用f.close()方法关闭文件,以把缓存区的数据写入磁盘,释放内存资源供其他程序使用。
如果只提供给open函数一个参数’name’,那么将返回一个只读的文件对象。如果需要将数据写入文件中,需通过mode参数提供文件打开模式。该参数有多种选择,具体参见表:






open()函数在’r’、‘r+’、'w+'和’a+'等模式打开文件后,可返回一个文本文件对象,在此基础上实现对文本文件的读取。文件对象内置读取数据的方法有read()、readline()、readlines(),如图所示:

在d盘根目录下新建一个名为’test.txt’的文件,并在其中输入两行英文’hello Python!‘和’how are you!’,然后保存并关闭文件。
在‘r’模式下构建文件对象f之后,可以用其内置函数read()、readline()和readlines()等方法读取出f中的数据。利用read()方法可读取文件中指定长度的字符,若括号中无数字,则直接读取文件中所有的字符;若提供数字,则一次读取指定数量的字符。

文件对象的内置方法readline()可实现逐行读取字符,若括号中无数字,则默认读取一行;若括号中有数字,则读取这一行中对应数量的字符(如果该数字大于这一行剩余的字符数,则读取这一行剩余的所有字符)。

文件对象的内置方法f.readlines()可实现读取一个文件中的所有行,并将其作为一个列表返回。每一行的信息作为列表中的一个字符串元素。

调用readlines()方法将返回一个以文件每一行内容作为元素的列表存储在内存之中。当文件很大时,则需要占用较大的内存,影响到计算机的正常运行。此时,有三种方法可以替代readlines()以减少内存的占用:
(1)组合使用循环结构与readline()方法,逐行读取文本内容;
(2)利用iter(文件对象)返回一个迭代器,从而降低了对计算机内存的占用;
(3)利用文件对象迭代功能,逐行读取信息。

最后,如果需要将迭代器转化为列表,则可考虑以下方法:




Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。