python有关文件的基本操作

1、Open函数使用

在Python中,open()函数是一个非常基本且常用的函数,用于打开文件,并返回一个文件对象。

1.方法一(需要手动关闭打开文件)
# 1.打开并且返回一个文件
f = open("./44.函数的参数.py", mode="r", encoding="utf-8")
# 方法 readable()判断文件是否可读
# 方法 writable()判断文件是否可写
print(f.readable(), f.writable())

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

结果:

在上述例子中,open()里第一个参数"./44.函数的参数.py"是要打开的文件路径(相对路径),参数mode="r"是文件的打开形式(默认为r可读),'r'可读'w'可写,encoding是文件编码格式。

下列是关于文件的几个常见方法,方法一个一个尝试,读取后光标移动不会自动移至开头。

# 1.打开并且返回一个文件
f = open("./44.函数的参数.py", mode="r", encoding="utf-8")
# 读取整个文件,返回字符串
print(f.read())
# 读取一行 返回字符串
print(f.readline(), type(f.readline()))
# 逐行读取 将结果以字符串的形式放入列表返回
print(f.readlines())
#
# 2.关闭文件
f.close()
2.方法二(会自动关闭文件)
# with open("./1.helloworld.py", mode="r", encoding="utf8") as f:
#     print(f.read())
#     print(f.readline())
#     print(f.readlines())

2、Json与pickle

json和pickle的使用方法相似,但是许多编程语言都支持json语法,所以json序列化的字符串可以被其他语言、数据库反序列化识别,使数据可以跨平台传输。而pickle序列化后的字符串只能由python语言进行反序列化识别。

下列方法使用的数据模型:

datas ={
    "id": 10001,
    "sid": None,
    "score": [
        {
            "cid": 1001,
            "cscore": 80
        },
        {
            "cid": 1002,
            "cscore": 80
        },
        {
            "cid": 1003,
            "cscore": 80
        }
    ]}
1.有关json序列化的相关方法

# 序列化:将python的数据结构转化为字符串 将python数据保存到文件中
# json.dumps
# 以可写的方式打开当前文件下的hello.txt文件,没有会自动创建。
with open("./hello.txt", "w") as f:
    # 读取数据datas,将序列化后字符串赋值给datas_str
    datas_str = json.dumps(datas)
    # 将序列化后的字符串写入文件,如果文件内有内容会将其覆盖
    f.write(datas_str)
    print(type(datas_str))


# json.dump
with open("./hello.txt", "w") as f:
    # 将数据datas写入打开的文件
    json.dump(datas, f)

需要注意"./"代表当前文件夹,"../"代表当前文件夹的父级文件夹

2.有关json反序列化的相关方法

方法loads()

# json.loads
with open("./hello.txt", "r") as f:
    # 将从文件中读取的字符串赋值给content
    content = f.read()
    # 运用json.loads对序列化后的 字符串 进行反序列化
    data = json.loads(content)
    print(data)

返回我们之前存入的数据结构和类型

方法load()

with open("./hello.txt", "r") as f:
    # 直接读取文件,将读到的序列化字符串进行反序列化并返回
    data = json.load(f)
    print(data)

结果是一样的:

3.pickle(了解即可)
# 只能用于python中,序列化后的编码其他编程语言不能识别
import pickle
datas = {
    "id": {},
    "address": ["北京", "上海", "杭州"]
}
# with open("pick.txt", "wb") as f:
#     datas_str = pickle.dumps(datas)
#     f.write(datas_str)

# with open("pick.txt", "wb") as f:
#     pickle.dump(datas, f)


# with open("./pick.txt", "rb") as f:
#     content = f.read()
#     data = pickle.loads(content)
#     print(data)


# with open("./pick.txt", "rb") as f:
#     data = pickle.load(f)
#     print(data)

3、Os模块

python中os模块提供了许多与操作系统交互的功能,这里介绍文件和目录的操作

1.文件和目录操作

import os

# print(os)
# # 当前 current
# print(os.curdir)
# # 父级路径 parent
# print(os.pardir)
# # \\转义一个\
# print(os.listdir("f:\\book"))
# 创建文件夹
# os.mkdir("")
# # 删除文件夹
# os.rmdir("")
# 切换文件夹
# os.chdir()
# 打印cpu的数量
# print(os.cpu_count())


# print(os.curdir)

# print(os.pardir)
# 打印当前目录下的文件信息
# print(os.listdir())
# print(os.listdir("f:"))
# # 切换至f盘
# os.chdir("f:")
#
# # 显示f盘的文件信息
# print(os.listdir())

# # 在f:\book文件夹下创建文件hello
# os.mkdir("f:\\book\\hello")

# # 展现f:\hello下的文件信息
# print(os.listdir("f:\\book"))

# # 删除f:\book文件夹下的文件hello
# os.rmdir("f:\\book\\hello")
# print(os.listdir("f:\\book"))


# print(os.cpu_count())

2.文件属性

# # 判断路径或文件是否存在
# print(os.path.exists("g:"))


# 获取当前文件的绝对路径
# print(os.path.abspath("."))
# print(os.path.abspath(os.curdir))
# # 获取当前文件父级路径的绝对路径
# print(os.path.abspath(os.pardir))

# 切换至"f:\\book"
# print(os.chdir("f:\\book"))

# 将最后的文件或文件夹与其父级路径切割
# print(os.path.split("f:\\book"))
# # 返回传入路径的父级路径
# print(os.path.dirname("f:\\book\\hello"))
# # 将传入的字符串拼接成路径
# print(os.path.join("f:/", "book", "hello"))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值