当前位置: 首页 > news >正文

Python 读取文件汇总

readline和readlines的区别

使用 open()读取文件时,readline是读取文件的一行;而readlines是加载全部文档,以list形式保存每一行内容。

使用with避免资源泄露

with语句不仅限于open()函数,任何实现了上下文管理协议的对象都可以使用以确保发生异常时,资源也能被正确释放。

安全读取文件

多用户系统中的文件通常归属于不同用户,用户可指定访问的内容。

文件创建时规定了哪些用户可以访问或者操作这个文件。

import os
import statflags = os.O_WRONLY | os.O_CREAT | os.O_EXCL  # 改变os的常量设置相应文件读写方式。
modes = stat.S_IWUSR | stat.S_IRUSR
with os.fdopen(os.open('test.txt', flags, modes), 'w') as f:f.write('secrets!')

读取文件的其他方法

from pathlib import Pathfile_path = Path("./data/new_text.txt")
file_path.touch(exist_ok=True)  # 创建空文件
with file_path.open("w", encoding="utf-8") as file:file.write("Using PathLib\n")# 创建临时文件
import tempfilewith tempfile.NamedTemporaryFile(mode='w', encoding='utf-8', delete=False) as temp_file:temp_file.write("This is a temporary file\n")temp_file_name = temp_file.name
print(f"Temporary file created: {temp_file_name}")

文件锁定

import fcntlwith open('./data/new_text.txt', "r+") as file:  # 打开文件获取独占锁fcntl.flock(file.fileno(), fcntl.LOCK_EX)file.seek(0)  # 操作文件content = file.read()print(content)fcntl.flock(file.fileno(), fcntl.LOCK_UN)  # 释放锁

参考:

https://www.51cto.com/article/792322.html

http://www.lryc.cn/news/466110.html

相关文章:

  • 云原生:一张图了解devops 中CI/CD
  • 无人机之自组网通信技术篇
  • 【WebLogic】Oracle发布2024年第四季度中间件安全公告
  • Java集合(3:Set和Map)
  • 【Golang】Gin框架中如何定义路由
  • CPU内存飙升
  • 【Java】LinkedList实现类的使用
  • 创建人物状态栏
  • django5入门【01】环境配置
  • 1000集《楼兰》系列短剧开机仪式在疆举行,开启全球传播新篇章
  • 【景观生态学实验】实验五 景观生态脆弱性评价
  • ChatGPT 现已登陆 Windows 平台
  • 和鲸社区数据科学实训季,西安交通大学圆满收官,西安,后会有期!
  • 工作使用篇:如何在centos系统中安装anaconda
  • qt creator 转 visual stdio 项目调试
  • django5入门【02】创建新的django程序
  • 乐趣无限,十个让你沉浸的“摸鱼”网站
  • ubuntu22.04 桌面系统怎么搭建一个esp-idf的项目,搭建开发环境
  • iOS Swift逆向——deMangle过程中的偏移计算
  • 国产大模型基础能力大比拼 - 计数:通义千文 vs 文心一言 vs 智谱 vs 讯飞-正经应用场景的 LLM 逻辑测试
  • YOLO11改进 | 注意力机制 | 正确的 Self-Attention 与 CNN 融合范式,性能速度全面提升【独家创新】
  • 0基础学java之Day11
  • python主流框架Django:ORM框架关联查询与管理器
  • 如何有效维护您的WordPress在线商店内容:提高客户参与度与转化率的实用技巧
  • 【Java】认识异常
  • 20 Shell Script输入与输出
  • HCIP-HarmonyOS Application Developer 习题(十六)
  • 没有什么可以抵达乌托邦,包括AI
  • 家庭事务管理系统|基于java和vue的家庭事务管理系统设计与实现(源码+数据库+文档)
  • doris创建异步物化视图(加速数据低频变更的复杂实时计算)