Python基础_文件操作

由于未提供博客具体内容,无法生成包含关键信息的摘要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# @Time:2020/12/25 21:20
# @Author:李 祥
# @File:文件操作.py
# @Software:PyCharm

# 1.文件操作的基本流程:写(write)

f = open("test.txt", "w")   # 不存在文件则新建
f.write("hello world")
f.close()   # 关闭文件  打开要关闭 避免占内存


# 相对路径和绝对路径
# 绝对路径:从盘符开始
# 相对路径:型对于当前源码所在位置

f = open(r"F:\study_project\文件操作\test.txt", "w")
f.write("Student")
f.close()

# 默认打开 pycharm是UTF-8编码 所以会有乱码
# windows 是GBK  可以从设置更改
f = open("test.txt", "w")
f.write("你好,世界")
f.close()

# 指定编码 无乱码
f = open("test.txt", "w", encoding="UTF-8")
f.write("你好,世界")
f.close()

# writelines 一次性写入多行
f = open("test.txt", "w", encoding="UTF-8")
# f.write("你好,世界\n人生苦短\n我用Python")
content = ["你好,世界", "人生苦短", "我用Python"]
f.write("\n".join(content))
f.close()

# 2.文件操作的基本流程:读(read)

f = open("test2.txt", "w", encoding="UTF-8")
f.write("Python\n" * 10)
f.close()

# f = open("test2.txt", "r", encoding="UTF-8")
# # data = f.read()
# # print(data)
# data = f.read(1)    # 读取1个字符
# print(data)
# data2 = f.read(2)   # 向后继续读2个字符  注:汉字也是一个字符
# print(data2)
# f.close()

# readline      读取一行,返回一个字符串
f = open("test2.txt", "r", encoding="utf-8")
while True:
    content = f.readline()
    if content:
        print(f"{content}", end="")
    else:
        break

f.close()

# readlines     读取多行
f = open("test2.txt", "r", encoding="utf-8")
content = f.readlines()
print(content)
i = 1
for data in content:
    print(f"{i}:{data}", end="")
    i +=1
# 上述代码可用下面的函数enumerate()
# for i, data in enumerate(content):
#     print(f"{i}:{data}", end="")

f.close()

# tell 返回指针当前所在位置(字节)
f = open("test3.txt", "w", encoding="utf-8")
f.write("你好,世界")
f.close()
f = open("test3.txt", "r", encoding="utf-8")
content = f.read(2)                   # read读 字符
print(content)                        # gbk 中文占2个字节
print("当前指针所在位置:", f.tell())     # utf-8中文占3个字节
f.close()

# seek 定位文件读取的指针所在位置(字节)
# f.seek(x, y)
# 参数
# x -- 开始的偏移量,也就是代表需要移动偏移的字节数
# y:可选,默认值为 0。给x参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
f = open("test3.txt", "r", encoding="utf-8")
content = f.read(2)
print(content)
f.seek(4)
print("当前指针所在位置:", f.tell())



在这里插入图片描述

# @Time:2020/12/26 14:54
# @Author:李 祥
# @File:访问模式.py
# @Software:PyCharm
# 访问模式
# 文件不存在 w和a 则会新建  r会报错
# FileNotFoundError: [Errno 2] No such file or directory: 'test4.txt'
# f = open("test4.txt", "a", encoding="utf-8")
# f.write("人生苦短")
# f.close()

# r+ 可读可写
f = open("test4.txt", "r+", encoding="utf-8")
data = f.read()
f.write("我用Python")

f.seek(0)
f.write(" 我用Python")
f.close()

# 二进制文件的操作
# 二进制文件的读写 图片 音乐等等
# 将文件的内容单纯的用0 1 来进行读取

fin = open("文件操作.png", mode="rb")
fout = open("文件操作_copy.png", mode="wb")

# while True:
#     data = fin.read(100)
#     if data:
#         fout.write(data)
#     else:
#         break
while True:
    data = fin.read(100)
    if data != b"":
        fout.write(data)
    else:
        break

fin.close()
fout.close()

# 缓冲区
# 写入过程
# 数据 --> 缓冲区(内存 --> 文件中(硬盘
# flush 刷新缓冲区


# truncate 截断
# f = open("test5.txt", "w", encoding="utf-8")
# f.write("Python"*5)
f = open("test5.txt", "r+", encoding="utf-8")
f.seek(11)
f.truncate()  # 从指针位置到结束位置全部删除
# f.truncate(8)     从开始位置到指定位置 保存
f.close()

# 文件对象 可迭代
f = open("test2.txt", "r", encoding="utf-8")
for line in f:
    print(line, end="")
f.close()

f = open("test5.txt", "r")
print("文件名:", f.name)
print("文件打开的模式", f.mode)
print("文件可写:", f.writable())
print("文件可读:", f.readable())


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值