Python:文件的操作

news2024/11/18 7:44:32

注意:本文引用自专业人工智能社区Venus AI

更多AI知识请参考原站 ([www.aideeplearning.cn])

Python的os库主要用于与操作系统进行交互,它提供了多种功能,使得在Python程序中处理操作系统级任务变得容易。这里是一些常用功能的概览:

  1. 文件和目录操作:创建、删除、修改文件和目录,以及遍历目录树。
  2. 路径管理:提供了处理文件路径的功能,包括路径的拼接、分解以及检查路径的有效性。
  3. 环境变量访问:读取和设置环境变量,这对于访问操作系统级信息非常有用。
  4. 执行系统命令:允许从Python程序中运行操作系统命令。
  5. 文件属性:获取和修改文件的属性,例如权限、最后修改时间等。
  6. 进程管理:允许获取与当前进程相关的信息,如进程ID等。
  7. 文件的读取:允许用户获取系统目录中的文件,并进行一些增删改查,创建,删除等常见文件操作。

os库的这些功能对于需要与操作系统层面交互的任务来说非常重要,特别是在文件和目录管理、环境设置方面。由于它是Python的一部分,因此可以直接在Python环境中使用,无需安装任何额外的包。

Python OS 库文件操作示例

本笔记本展示了 Python os 库用于文件操作的一些基本示例。

文件路径操作

import os

# 路径拼接
joined_path = os.path.join('folder', 'file.txt')

# 路径分割
dir_name, file_name = os.path.split(joined_path)

# 检查路径是否存在
path_exists = os.path.exists(joined_path)

# 检查是否为文件
is_file = os.path.isfile(joined_path)

# 检查是否为目录
is_dir = os.path.isdir('folder')

文件操作

# 重命名文件 (需要文件存在)
os.rename('old_name.txt', 'new_name.txt')

# 删除文件 (需要文件存在)
os.remove('file_to_delete.txt')

# 创建和删除目录
os.mkdir('new_dir')
os.rmdir('new_dir')

目录操作

# 获取当前工作目录
current_dir = os.getcwd()

# 改变当前工作目录
os.chdir('..')  # 更改到上级目录
os.chdir(current_dir)  # 更改回原目录

# 列出目录内容
dir_contents = os.listdir('.')

遍历目录树

# 遍历目录树
for dirpath, dirnames, filenames in os.walk('.'):
    print('Directory:', dirpath)
    print('Subdirectories:', dirnames)
    print('Files:', filenames)

环境变量

# 获取环境变量
path_env = os.environ.get('PATH')

# 设置环境变量 (影响当前进程)
os.environ['MY_VAR'] = 'some_value'

文件的打开与关闭

在Python,使用open函数可以打开一个已经存在的文件,或者创建一个新文件。 语法格式为open(文件名,访问模式),代码如下:

f = open('test.txt', 'w')

常见访问模式的具体说明详见下表  关闭文件的函数为close(),代码如下:

# 新建一个文件,文件名为:test.txt    
f = open('test.txt', 'w')    
# 关闭这个文件    
f.close()

文件的读和写

使用write()函数可以向文件写入数据。

此外,你可以根据需求选择不同的访问模式。

在w模式下,如果文件不存在则会创建新文件,如果文件存在则会清空原文件。

在a模式下,如果文件存在则在原文件上继续写入,如果文件不存在则会创建新文件。

在r模式下,文件将以读取模式打开,如果文件不存在,会抛出错误。代码如下:

f = open('test.txt', 'w')    
f.write('hello world, i am here!')    
f.close()

使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。实例如下:令test.txt的文本内容是hello world,i am here!,代码如下:

#wenjian.py
f = open('test.txt', 'r')    
content = f.read(5)    
print(content)    
print("-"*30)    
content = f.read()    
print(content)    
f.close() 
hello
------------------------------
 world, i am here!


注意,如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的。
此外,除了read()函数,还有一些其他函数也可以完成读取任务,具体如下:
(1)函数readlines()可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
(2)函数readline()用于读取文件中的一行,包含最后的换行符“\n”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1525965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外包干了3个月,技术明显进步。。。。。

在湖南的一个安静角落,我,一个普通的大专生,开始了我的软件测试之旅。四年的外包生涯,让我在舒适区里逐渐失去了锐气,技术停滞不前,仿佛被时间遗忘。然而,生活的转机总是在不经意间降临。 与女…

1.MongoDB的特点与应用场景

什么是 MongoDB ? MongoDB 是基于 C 开发的 NOSQL 开源文档数据库 ,是最像关系型数据库的 nosql,功能也是最丰富的 nosql,它具有所以的可伸缩性,灵活性,高性能,高扩展性的优势。 大致有如下特…

Vulnhub - Morpheus

希望和各位大佬一起学习,如果文章内容有错请多多指正,谢谢! 个人博客链接:CH4SER的个人BLOG – Welcome To Ch4sers Blog Morpheus 靶机下载地址:Matrix-Breakout: 2 Morpheus ~ VulnHub 0x01 信息收集 Nmap扫描…

代码随想录算法训练营第二十四天|● 理论基础 ● 77. 组合(JS写法)

回溯理论基础 回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的树的深度。递归就要有终止条件,所以必然是一棵高度有限的树&#xff…

一篇搞定ECharts的基本使用,赶快收藏起来学习吧~

准备工作 引入 声明一个有宽高的dDOM元素 echarts.init(DOM) option配置对象 echarts.setOptions(option) 基础配置 option类似于一个容器,那么里面的属性就相当于组件: xAxis(直角坐标系 X 轴)、yAxis(直角坐…

关于udp能跨局域网传输的问题

UDP(用户数据报协议)以其独特的传输特性在多种应用场景中都有着极其重要的作用。然而,关于UDP是否能跨局域网(LAN)进行传输,以及这一传输过程中的优缺点,一直是网络技术领域讨论的热点。本文将详…

git基础命令(四)之分支命令

目录 基础概念git branch-r-a-v-vv-avv重命名分支删除分支git branch -h git checkout创建新的分支追踪远程分支同时切换到该分支创建新的分支并切换到该分支撤销对文件的修改,恢复到最近的提交状态:丢弃本地所有修改git checkout -h git merge合并指定分…

Windows系统安装VNC客户端结合内网穿透实现公网远程连接Deepin桌面

文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 x11vnc是一种在Linux系统中实现远程桌面控制的工具,它的原理是通过X Window系统的协议来实现远程桌面的展…

1688商品详情API接口采集商品上货

阿里巴巴1688平台并没有直接公开商品详情API接口供普通用户或开发者进行商品采集和上货。1688平台主要服务于批发和采购业务,其API服务通常面向的是有深度合作关系的商家或开发者,且需要经过申请和审核流程。 请求示例,API接口接入Anzexi58 …

Python Web开发记录 Day14:Django part8 订单管理

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、数据库准备2、添加订单3、订单列表4、删除订…

C#集合:从字典到队列——探索数据结构核心

文章目录 C# 中的集合类型C# Dictionary 字典C# Hashtable:哈希表Hashtable 类中的属性Hashtable 类中的方法 C# SortedList:排序列表SortedList 类的中的属性SortedList 类的中的方法 C# Stack:堆栈Stack 类中的属性Stack 类中的方法 C# Que…

产品经理:前端实现网页防篡改,你会怎么做?

公众号:程序员白特,欢迎一起交流学习~ 如果产品经理要求系统中某个页面的输入框做防止篡改处理,你会怎么做呢? 需求梳理 首先,什么是防篡改? 简单来说,就是用户输入input框值,我们…

静态HTML5接入海康websocket视频流|海康ws视频流接入H5页面

引言 海康提供了vue实现插件播放视频的实例,实现取流失败了之后重新获取新的流播放视频,但是在很多情况下需要在静态HTML项目中进行视频的播放,于是引出此文。 海康开放平台SDK下载地址:https://open.hikvision.com/download/5c6…

Python使用 k 均值对遥感图像进行语义分割

本篇文章介绍K-means语义分割来估计 2000 年至 2023 年咸海水面的变化 让我们先看一下本教程中将使用的数据。这是同一地区的两张 RGB 图像,间隔 23 年,但很明显地表特性和大气条件(云、气溶胶等)不同。这就是为什么我决定训练两个独立的 k-Means 模型,每个图像一个。 首…

vue3 element plus 上传下载

文章目录 上传下载 上传 /* html */ <el-upload v-model"fileId" class"avatar-uploader" ref"exampleUploadRef" :file-list"fileList" :show-file-list"false" action"/ys-three-year/ThreeReport/uploadFile&q…

d3dcompiler_47.dll是什么,软件游戏报错d3dcompiler_47.dll缺失怎么修复?

当你在运行某些程序或游戏时出现"找不到d3dcompiler_47.dll"的错误提示时&#xff0c;不要慌张&#xff01;这是一个常见的问题&#xff0c;但有多种有效的解决办法可以帮助你修复这个文件丢失的情况。今天就来教大家d3dcompiler_47.dll文件丢失的多种解决办法。 一.…

旅游管理系统|基于SpringBoot+ Mysql+Java+Tomcat技术的旅游管理系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 用户功能 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 …

【LeetCode每日一题】310. 最小高度树

文章目录 [310. 最小高度树](https://leetcode.cn/problems/minimum-height-trees/)思路&#xff1a;拓扑排序代码&#xff1a; 310. 最小高度树 思路&#xff1a;拓扑排序 首先判断节点数量n&#xff0c;如果只有一个节点&#xff0c;则直接返回该节点作为最小高度树的根节点…

【学习心得】Python数据分析的基本思路

一、什么是数据分析&#xff1f; 数据分析是指通过一些方法&#xff0c;对一些数据进行分析&#xff0c;从中提取出有价值的信息并形成结论进行展示。 &#xff08;1&#xff09;一些方法 数学和统计学方法&#xff1a;例如回归分析、聚类分析、主成分分析、时间序列分析等&a…

软件测试面试之支付系统测试

本篇文章主要从支付系统设计入手进行测试&#xff0c;针对界面功能测试容易忽略但是又十分重要的逻辑。关于支付密码、验证码、银行卡绑定等等能从界面入手测试的&#xff0c;下文也不讲述&#xff0c;如果有兴趣可以留言&#xff0c;后面整理。 1、APP支付结果查询是否合理 假…