python12_持久化存储文件操作 os模块 JSON模块 存储为excel文件

1. 文件的基本操作

  • 先在当前目录下创建一个hello.txt文件
    在这里插入图片描述

1.1 文件的打开 open()

  1. open函数的定义
    在这里插入图片描述

  2. 文件的操作
    在这里插入图片描述

  3. 文件的打开模式
    (先判断读,还是写,还是读写)
    在这里插入图片描述在这里插入图片描述

1.1.1 读文件 r

# 文件的基本操作
# 1. 读操作
# 1-1). 打开文件
f = open('doc/hello.txt')

# 1-2). 文件读操作
print(f.read())
                    # hello
                    # westos
# 1-3). 关闭文件
f.close()

1.1.2 写文件 w(清空原文件内容)

  1. 错误案例
# 2. 写操作
# 错误案例:
# 2-1). 打开文件
f = open('doc/hello.txt')

# 2-2). 文件写操作
print(f.read())
f.write('java\n')   # 报错:没有写权限
                    #  io.UnsupportedOperation: not writable

# 2-3). 关闭文件
f.close()
  1. 正确案例(注意此时不能读
    清空原文件的内容,重新写入新的内容
# 正确案例:
# 2-1). 打开文件
f = open('doc/hello.txt', mode='w')     # 赋予写权限,注意此时不能读

# 2-2). 文件写操作
f.write('java\n')       # java, 清空原文件的内容,重新写入新的内容

# 2-3). 关闭文件
f.close()

在这里插入图片描述

1.1.3 写文件 a(追加原文件内容)

# 3. 读写文件
# 3-1). 打开文件
f = open('doc/hello.txt', mode='a')

# 3-2). 文件读写操作
f.write('python\n')

# 3-3). 关闭文件
f.close()

1.2 文件的关闭 close()

在这里插入图片描述

1.2.1 with语句工作原理

在这里插入图片描述

1.2.2 seek语句工作原理

	设置指针的移动方向
	f.seek(0, 0)		# 移动指针到文件的最开始
	f.seek(0, 2)		# 移动指针到文件的最末尾

在这里插入图片描述

1.2.3 tell语句的工作原理

f.tell()		# 返回指针的位置

1.2.4 实例

  • 假如不使用seek语句,
    此时,指针指向文件末尾(13),f.read()会从当前位置开始读,
    所以,此时是没有任何输出的
    在这里插入图片描述
  • 使用seek语句
    指针指向文件的开头,此时打印的数据从当前指针位置开始
    在这里插入图片描述
# with语句 seek语句 tell语句
with open('doc/hello.txt', 'w+') as f:
    # w+ : 清空再写入数据
    f.write('hello world\n')    # 写入文件
    f.seek(0, 0)                # 移动指针到文件的最开始
    # 0: 表示文件开头
    print('当前指针的位置:', f.tell()) # 当前指针的位置: 0
    print(f.read())             # 读取文件内容
    f.seek(0, 2)                # 从文件开始的位置移动到文件末尾的位置
    # 2: 表示文件末尾
    print('当前指针的位置:', f.tell()) # 当前指针的位置: 13
# 执行结果
# 当前指针的位置: 0
# hello world
# 
# 当前指针的位置: 13

2. os模块

在这里插入图片描述

2.1 关于操作系统

  1. 获取主机信息
  • 注意:Windows系统通过platform模块获取系统的uname信息
import os
print(os.name)
# print(os.uname())   # 报错:AttributeError: module 'os' has no attribute 'uname'
                    # Windows不支持os.uname

# 获取主机信息,Windows系统使用platform模块
# 如果是Linux系统,使用os模块
import platform
print(platform.uname())
# uname_result(system='Windows', node='LAPTOP-0VVRF0MM', release='10', version='10.0.19041', machine='AMD64')
  1. try语句(异常捕获
  • try:可能出现报错的代码
  • except:如果异常
  • finally:是否异常,都会执行的内容
try:                # 可能出现报错的代码时,使用try
    uname = os.uname()
except Exception:   # 如果出现异常,则执行此条代码
    uname = platform.uname()
finally:
    print(uname)    # 是否有异常,都会执行的内容
  1. 获取系统的环境变量
# 系统环境变量
print(os.environ)

# 通过key值获取环境变量对应的value值
print(os.environ.get('PATH'))
print(os.getenv('PATH'))

2.2 关于路径

# 2. 关于路径
# 2-1). 判断是否为绝对路径
print(os.path.isabs('doc/hello.txt'))   # False
print(os.path.isabs('hello.txt'))       # False

# 2-2). 生成绝对路径
print(os.path.abspath('doc/hello.txt')) # E:\pythonProject1\2021-11-28-python_study\day05\doc\hello.txt

# 2-3). 返回一个绝对路径:当前目录的绝对路径 + 文件名/目录名
print(os.path.join('E:\pythonProject1', 'hello.txt'))   # E:\pythonProject1\hello.txt

# 2-4). 获取目录名或者文件名
filename = 'E:\pythonProject1\2021-11-28-python_study\day05\doc\hello.txt'
# 获取文件名
print(os.path.basename(filename))   # hello.txt
# 获取文件的目录名
print(os.path.dirname(filename))    # E:\pythonProject1\2021-11-28-python_study\day05\doc

# 2-5). 目录名和文件名拼接 (生成新的文件)
# os.path.dirname() 获取某个文件对应的目录名
# __file__ 当前文件
# join拼接,将目录名和文件名拼接起来
BASE_DIR = os.path.dirname(__file__)    # 打印当前文件的绝对路径
print(BASE_DIR)                         # E:\pythonProject1\2021-11-28-python_study\day05
setting_file = os.path.join(BASE_DIR, 'apple.conf')
print(setting_file)                     # E:\pythonProject1\2021-11-28-python_study\day05\apple.conf
with open(setting_file, 'w') as f:
    f.write('apple')

在这里插入图片描述

# 2-6). rename() 对文件重命名
NEW_FILENAME = os.rename('apple.conf', 'banana.conf')

在这里插入图片描述

# 2-7). remove() 对文件删除
os.remove('banana.conf')

在这里插入图片描述

2.3 关于文件和目录的操作

  1. 创建目录/删除目录
# 3. 关于文件和目录的操作
# 3-1). 创建目录/删除目录
os.makedirs('furits/apple')
os.mkdir('vegetable')
# 删除
os.rmdir('furits/apple')
os.rmdir('furits')
os.rmdir('vegetable')

在这里插入图片描述

  1. 创建文件/删除文件
# 3-2). 创建文件/删除文件
# Windows系统不支持使用mknod
# 可以通过拼接join的方式创建文件
  1. 文件重命名
# 3-3). 文件重命名
os.rename('banana.conf', 'orange.conf')
  1. 判断文件或者目录是否存在
# 3-4). 判断文件或者目录是否存在
print(os.path.exists('orange.conf'))    # True
  1. 分离后缀名和文件名
# 3-5). 分离后缀名和文件名
print(os.path.splitext('orange.conf'))  # ('orange', '.conf')
print(os.path.split('orange.conf'))     # ('', 'orange.conf')
  1. 将目录名和文件名分离
# 3-6). 将目录名和文件名分离
print(os.path.split('E:\pythonProject1\2021-11-28-python_study\day05\doc\hello.txt'))
# ('E:\\pythonProject1\x821-11-28-python_study\\day05\\doc', 'hello.txt')

2.4 练习:文件批量重命名

在这里插入图片描述

3. JSON模块

  • 每种语言都可以读懂 JSON
    在这里插入图片描述

3.1 python类型数据和JSON数据格式互相转换规则

在这里插入图片描述在这里插入图片描述

3.2 python对象编码成JSON字符串

  • json.dump()
  • json.dumps()
# python类型数据和JSON数据格式互相转换规则
import json
# 1. python对象编码成JSON字符串
users = {'name':'westos', 'age':21, 'city':'西安'}
json_str = json.dumps(users)
with open('doc/hello.txt', 'w') as f:
    # ensure_ascii=False: 中文可以成功存储
    # indent=4: 缩进为4个空格
    json.dump(users, f, ensure_ascii=False, indent=4)
    print('存储成功')
print(json_str, type(json_str))
# 存储成功
# {"name": "westos", "age": 21, "city": "\u897f\u5b89"} <class 'str'>

在这里插入图片描述在这里插入图片描述

3.3 将JSON字符串解码成python对象

  • json.load()
# 2. 将JSON字符串解码成python对象
with open('doc/hello.txt') as f:
    python_obj = json.load(f)
    print(python_obj, type(python_obj))
# {'name': 'westos', 'age': 21, 'city': '西安'} <class 'dict'>

4. 存储为excel文件

  1. 安装pandas模块
# 1. 安装pandas模块
# pip install pandas -i https://pypi.douban.com/simple
# E:\pythonProject1\2021-11-28-python_study>pip install pandas -i https://pypi.douban.com/simple
  1. 转换数据类型:将字典转换为二维数组
import pandas
hosts = [
    {'host':'1.1.1.1', 'hostname':'test1', 'idc':'alibaba'},
    {'host':'1.1.1.2', 'hostname':'test2', 'idc':'tencent'},
    {'host':'1.1.1.3', 'hostname':'test3', 'idc':'huawei'},
    {'host':'1.1.1.4', 'hostname':'test4', 'idc':'alibaba'}
]

# 2. 数据格式转换
#       将字典转换为二维数组
df = pandas.DataFrame(hosts)
print(df)
#       host hostname      idc
# 0  1.1.1.1    test1  alibaba
# 1  1.1.1.2    test2  tencent
# 2  1.1.1.3    test3   huawei
# 3  1.1.1.4    test4  alibaba
  1. 存储到excel文件中(需要安装openpyxl模块)
# 3. 存储到excel文件中
# 需要安装openpyxl模块
# E:\pythonProject1\2021-11-28-python_study>pip install openpyxl -i https://pypi.douban.com/simple
df.to_excel('doc/hosts.xlsx')
print('success')
#       host hostname      idc
# 0  1.1.1.1    test1  alibaba
# 1  1.1.1.2    test2  tencent
# 2  1.1.1.3    test3   huawei
# 3  1.1.1.4    test4  alibaba
# success

全部代码:

# 1. 安装pandas模块
# pip install pandas -i https://pypi.douban.com/simple

import pandas
hosts = [
    {'host':'1.1.1.1', 'hostname':'test1', 'idc':'alibaba'},
    {'host':'1.1.1.2', 'hostname':'test2', 'idc':'tencent'},
    {'host':'1.1.1.3', 'hostname':'test3', 'idc':'huawei'},
    {'host':'1.1.1.4', 'hostname':'test4', 'idc':'alibaba'}
]

# 2. 数据格式转换
#       将字典转换为二维数组
df = pandas.DataFrame(hosts)
print(df)
#       host hostname      idc
# 0  1.1.1.1    test1  alibaba
# 1  1.1.1.2    test2  tencent
# 2  1.1.1.3    test3   huawei
# 3  1.1.1.4    test4  alibaba

# 3. 存储到excel文件中
# 需要安装openpyxl模块
# E:\pythonProject1\2021-11-28-python_study>pip install openpyxl -i https://pypi.douban.com/simple
df.to_excel('doc/hosts.xlsx')
print('success')
#       host hostname      idc
# 0  1.1.1.1    test1  alibaba
# 1  1.1.1.2    test2  tencent
# 2  1.1.1.3    test3   huawei
# 3  1.1.1.4    test4  alibaba
# success

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。将txt文件转换成JSON文件可以使用Python内置的json模块实现。 具体的步骤如下: 1. 读取txt文件中的内容 可以使用Python内置的open函数打开txt文件,并使用read函数读取文件中的内容。 例如,假设你要读取名为input.txt的文件,可以使用以下代码: ``` with open('input.txt', 'r') as file: text = file.read() ``` 2. 将txt内容转换成Python数据类型 由于JSON格式只支持字符串、数字、布尔值、数组和字典等数据类型,因此需要将txt中的内容转换成Python中的数据类型。 例如,假设txt中的内容为以下字符串: ``` {"name": "Tom", "age": 20} ``` 可以使用json模块的loads函数将其转换为Python中的字典类型: ``` import json data = json.loads(text) ``` 3. 将Python数据类型转换成JSON格式 将Python中的字典类型转换成JSON格式可以使用json模块的dumps函数。 例如,假设你的Python字典为以下内容: ``` data = {"name": "Tom", "age": 20} ``` 可以使用以下代码将其转换成JSON格式: ``` json_data = json.dumps(data) ``` 4. 将JSON格式写入文件 最后,将JSON格式的数据写入文件中。可以使用Python内置的open函数打开一个新文件,并使用write函数将JSON数据写入该文件。 例如,假设你要将JSON数据写入名为output.json文件,可以使用以下代码: ``` with open('output.json', 'w') as file: file.write(json_data) ``` 以上就是将txt文件转换成JSON文件的完整步骤。希望可以帮助到你。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值