python中的文件操作

一.文件操作介绍
文件的作用
一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,“哭都没地方哭了”。 默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放。
文件的打开
在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和seek

"""
    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())       ##读取文件内容

二.os模块
os,语义为操作系统,处理操作系统相关的功能,可跨平台。 比如显示当前目录下所有文件/删除某个文件/获取文件大小……
在这里插入图片描述

#1.获取主机信息
import os
import platform
print(os.name)
#print(os.uname)
#获取主机信息,windows系统使用platform,linux使用os模块
print(platform.uname())

# 3. 获取系统环境变量
envs = os.environ
#os.environ.get('PASSWORD')从环境变量里面获取某种特殊变量值
#os.getenv('PASSWORD')
print(envs)

#4.path
os.path

#5.目录名和文件名拼接
#os.path.dirname 获取某个文件对应的目录名
#__file__当前文件
#join拼接,将目录名和文件名拼接起来。
#rename(需要修改的文件名, 新的文件名)
BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)   #D:/pycharm pro/项目存储/2-6 内置数据结构3
setting_file = os.path.join(BASE_DIR,'dev.conf')
new_file = os.rename('hello.txt','hello1.txt')
os.remove('hello1.txt')
print(setting_file)

#6.创建目录和删除目录
os.makedirs()
os.mkdir()
os.rmdir()

#7. 创建文件删除文件
os.mknod('hello.txt')
os.remove('hello.txt')

#8.判断文件或者目录是否存在
os.path.exists('hello.txt')

#9.分离后缀名和文件名
os.path.splitext('hello1.txt')
os.path.split('hello1.txt')

#10.将目录名和文件名分离
os.path.split('D:/pycharm pro/项目存储/2-6 内置数据结构3')

注意:
os模块中的rename()可以完成对文件的重命名操作。格式为:rename+(需要修改的文件名, 新的文件名)
os模块中的remove()可以完成对文件的删除操作。格式为:remove+(待删除的文件名)

三.json模块
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。

JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。

这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
在这里插入图片描述

python 中str类型到JSON中转为unicode类型,None转为null,dict对应object;
pyhton中的集合不能转成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)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值