Python基础--文件操作(OS)

核心基础-编程语言-Python:基础语法、文件操作、模块与包管理、常用库(os、sys、re、requests) Python是运维工程师的首选脚本语言,具有简洁语法和强大库支持。本章涵盖Python核心知识:基础语法(变量类型、运算符、流程控制)、文件操作(读写模式、上下文管理)、模块与包管理(导入方式、pip工具、虚拟环境)以及四大常用库(os系统交互、sys系统参数、re正则表达式、requests网络请求)。重点讲解了文件处理的最佳实践、第三方包管理和虚拟环境使用技巧,为运维自动化提供基础支持。 阅读详情

一、操作方式

1)读

注意:光标会以文本开始读取

1、以文本读取读

1、绝对路径读取
f = open('/home/pyrookie/temp.txt',mode='r',encoding='utf-8')
content = f.read()
print(content)
f.close()
2、相对路径读取
f2 = open('temp.py',mode='r',encoding='utf-8')
content = f2.read()
print(content)
f2.close()

2、以二进制读取

二进制形式 一般在打开图片,视频等文件时使用 上传下载文件时使用

# 将文件以urt-8打开 但是字符串以uncode编码的
# 所以再内部有一次转换为str
f2 = open('temp.py',mode='rb') #二进制不写编码格式
content = f2.read()
print(content)
f2.close()

3、读+ (读写)

先读取文件中的内容,再追加

f = open('log',mode='r+',encoding='utf-8')
print(f.read())
f.write('我是pyrookie')
f.close()

4、读+ (写读)

注意,写会先覆盖掉文件中的内容,读取的是覆盖之后的内容

f = open('log',mode='r+',encoding='utf-8')
f.write('aaa')
print(f.read())
f.close()

## 2)写

### 1、以文本读写入
**对于写,没有此文件就会创建文件**
**有文件,先将文件清除,再写入**
```python
f2 = open('text',mode='w',encoding='utf-8')
f2.write('写入的内容')
f2.close()




<div class="se-preview-section-delimiter"></div>

2、以二进制写入

wb写入的时候用什么编码写入就用什么打开

f2 = open('log',mode='wb')
f2.write('写入的内容'.encode('utf-8'))
f2.close()




<div class="se-preview-section-delimiter"></div>

3、读+

没什么用 只是读取不报错

f = open('log',mode='w+',encoding='utf-8')
f.write('后面加入的内容')
print(f.read())
f.close()




<div class="se-preview-section-delimiter"></div>

3)追加

1、以文本读取读

f = open('log',mode='a',encoding='utf-8')
f.write('追加的内容')
f.close()




<div class="se-preview-section-delimiter"></div>

2、以二进制读取

f = open('log',mode='ab')
f.write('追加的内容'.encode('utf-8'))
f.close()




<div class="se-preview-section-delimiter"></div>





<div class="se-preview-section-delimiter"></div>

## 4)读写





<div class="se-preview-section-delimiter"></div>

### 1、以文本读取读





<div class="se-preview-section-delimiter"></div>

### 2、以二进制读取





<div class="se-preview-section-delimiter"></div>

### 3、读+




<div class="se-preview-section-delimiter"></div>

## 5)




<div class="se-preview-section-delimiter"></div>

## 6)





<div class="se-preview-section-delimiter"></div>

# 二、功能详解




<div class="se-preview-section-delimiter"></div>

## 1)f.read(n)
功能:读取指定字符的文本信息




<div class="se-preview-section-delimiter"></div>

```python
f = open('log',mode='r+',encoding='utf-
content = f.read(3)    #只读三个字符字符字符(你看到的是几个就是几个字符)   
print(content) 
f.close()  

aaa           

2)f.seek(n)

功能:将光标移动到制定的字节位置

f = open('log',mode='r+',encoding='utf-8')  
f.seek(3)
# 英文  一个字母按照一个字节    一个汉字按照三个字节)(utf-8)
content = f.read(3)
print(content)   
f.close()        

3)f.tell()

功能:读取光标目前的位置

f = open('log',mode='r+',encoding='utf-8')        
f.write('nihaoya你是不')                             
count = f.tell()   # 读取光标位置                       
f.seek(count-6)    # 调整光标位置(注意这以字节移动)             
print(f.read())    

是不12345        # 读取的内容是从写入后往前移动6个字符读取                         

4) f.readline()

功能:一行一行的读取

f = open('log',mode='r+',encoding='utf-8') 
print(f.readline()) 
print(f.readline()) 
print(f.readline()) 

12345
12345
12345

5)f.readlines()

功能:每一行当成列表中的一个元素,添加到列表中

f = open('log',mode='r+',encoding='utf-8')   
line = f.readlines()  
print(line)                                  

['12345\n', '12345\n', '12345\n']   
可以用 str.strip() 去除字符串两边的空字符串                                        

6)其他方法

1、f.readable()

功能:文件是否可读

f = open('log',mode='r+',encoding='utf-8')   
print(f.readable())  

True              

2、f.truncate(n)

功能:从前往后截取几个字符


f = open('log',mode='r+',encoding='utf-8')        
f.truncate(5)   
# 文件中会只剩下5个字节 字节 字节                                                                   

三、文件操作的几个注意事项

1)读取文件

注意读取文件时要注意不要直接读取文件的全部内容
可以使用 f.readline() 读取文件的一行或者使用f.read(n)读取文件的几个字符

2)使用 with open()as

可以使用 with open 一次打开多个文件。

with open('log',mode='r+',encoding='utf-8') as obj, open('ni',mode='w+',encoding='utf-8') as f:  
    print(obj.read())    

3)字符串编码注意事项

1、中文的编码与解码

# str --->byte  encode 编码
s = '皮皮江'
b = s.encode('utf-8')
print(b)
#byte --->str decode 解码
s1 = b.decode('utf-8')
print(s1)

b'\xe7\x9a\xae\xe7\x9a\xae\xe6\xb1\x9f'
皮皮江

2、英文编码与解码

s = 'pyrookie'
b = s.encode('utf-8')
print(b)
#byte --->str decode 解码
s1 = b.decode('gbk')
print(s1)

b'pyrookie'
pyrookie

2)使用 with open()as

with open() as :
默认是读取,编码方式为unicode
windos的文件默认都是 gbk 编码方式
可以使用 with open 一次打开多个文件。

四、文件操作

1)删除文件

import os 
os.remove('文件路径/文件名')

2)重命名文件

import os 
os.remove('ord文件路径/文件名','new文件路径/文件名')
【Python基础20讲】第11章:文件操作:OS库的使用和JSON、CSV读写 常用方法:.exists() 判断是否存在、.is_file() / .is_dir() 判断类型、.mkdir() 创建目录、.glob(‘*.py’) 匹配文件、.read_text() / .write_text() 读写文本、.stat() 获取文件信息、.resolve() 获取绝对路径。Python 的 json 模块提供了 dumps()(序列化为字符串)、dump()(写入文件)、loads()(从字符串反序列化)、load()(从文件反序列化)四个函数。推荐使用逐行迭代或分块读取。 阅读详情

相关推荐

改进爬山算法之六:随机重启爬山算法(Random-Restart Hill Climbing,RRHC)

随机重启爬山算法(Random-Restart Hill Climbing,RRHC)是爬山算法的一种改进策略,是一种启发式搜索算法,旨在通过随机重启来克服传统爬山算法容易陷入局部最优解的局限性,并增加找到全局最优解的概率。随机重启爬山算法通过在多次运行中不断尝试不同的初始解,并在每次运行中执行标准的爬山算法,最终选择所有运行中找到的最佳解作为最终结果。(1)计算复杂度:由于需要多次运行爬山算法,因此算法的计算复杂度可能较高,特别是在解空间较大或每次迭代需要较长时间的情况下。

搏博的专栏 2205

Rookie学习笔记(四)

Rookie学习笔记(四) 四.Python(版本:3.7) 可用Pycharm进行py编码 1.代码实例 ​ pass 2.练习

qq_45711424的博客 395

新手必看:TwinCAT死活扫不到倍福CX5020?别慌,先检查这3个地方(附静态IP配置)

本文详细介绍了TwinCAT软件无法扫描到倍福CX5020控制器的常见问题及解决方案。从网络连通性检查、系统环境配置到静态IP设置,提供了一套完整的排查流程和优化建议,帮助新手快速解决通信问题,确保设备稳定运行。

weixin_27219587的博客 363

从浏览器提取Cookie:TikTokDownloader免手动输入方案

# 从浏览器提取Cookie:TikTokDownloader免手动输入方案 ## 痛点直击:Cookie获取的3大难题 你是否还在为获取TikTok Cookie而频繁切换浏览器与终端?手动复制Cookie时是否遭遇过格式错误导致工具无法运行?Windows系统下是否因权限问题反复失败?TikTokDownloader的浏览器Cookie自动提取功能彻底解决这些痛点,让你告别繁琐的手动操作,...

gitblog_00173的博客 1842

CoppeliaSim+matlab+simulink七轴机械臂仿真

七轴机械臂vrep+matlab+simulink 仿真

a1233219的博客 3546

电子取证之服务器取证思路

服务器取证是一个技术性很强的领域,涉及到多个环节,包括网站重构、网站代码分析、容器分析等。数据库密码的获取通常通过查看配置文件、日志文件、备份等途径,同时可以通过一些绕过技术如禁用身份验证来获取权限。对于不同的数据库,需要根据其特性采取相应的应对方法和命令。

2401_84830066的博客 2488

Rookie学习笔记(五)

Rookie学习笔记(五) 五.自动化测试 1.自动化测试环境的部署 1、部署 Python 2、部署 Pycharm 3、安装第三方模块: pip install selenium # 操作浏览器 pip install ddt # 做数据驱动 pip install htmlreport==1....

qq_45711424的博客 543

【NodeRed】node-red-contrib-opcua实现PLC读写

在之前的博文【Node-RED】node-red-contrib-opcua-server模块使用(1)中,我们介绍了用node-red-contrib-opcua-server模块实现OPCUA服务端的,以及二次开发的内容。本节博文中我们采用官方社区自带的node-red-contrib-opcua组件开展对OPCUA客户端的介绍,详细阐述用该组件中OpcUa-Client节点实现客户端对PLC的读写,以及实现过程中遇到的问题。由于官方社区中并没有找到该组件的介绍实例,这也是本博文编写的第1个原因。

weixin_48618536的博客 958

机器学习(九):k-均值(k-means)

引言:     k均值(k-means)是一种聚类算法,其工作流程如下:随机选择k个点作为初始质心(质心即簇中所有点的中心),然后将数据集中的每个点分配到一个簇中,具体来讲,为每个点找距其最近的质心,并将其分配给该质心所对应的簇。这一步完成之后,每个簇的质心更新为该簇所有点的平均值。重复以上步骤,直到质心不发生变化。     k均值的操作解释参见图1。 图1     然而随机地选取初始...

tb店铺搜:FUN STORE玩物社,专业买手挑选送礼好物 4万+

STM32实战开发(120):基于STM32的智能pH值检测系统开发

pH值检测:通过pH传感器实时检测溶液的酸碱度。数据采集与处理:STM32单片机通过模拟信号采集并进行数字化处理。数据显示与控制:通过LCD或OLED屏幕实时显示pH值。数据存储与上传:将数据保存在本地SD卡,或通过Wi-Fi模块上传至云平台。低功耗设计:适合长时间运行,减少能源消耗。本文介绍了如何基于STM32单片机开发智能pH值检测系统,涉及硬件设计、软件开发及应用实现。该系统可以实时检测pH值,并将数据展示、存储、上传至云平台,适用于环境监测、农业、水处理等多个领域。

2201_76125393的博客 1816

PyTorch深度学习实战(41)——循环神经网络与长短期记忆网络

循环神经网络 (Recurrent Neural Network, RNN) 通过将前一个时间步的隐藏状态作为当前时间步的输入,实现对序列数据的建模,由于循环连接的存在,RNN 能够捕获时间依赖关系,然而,RNN 在处理长期依赖性问题时会遇到困难。为了解决这个问题,提出了 LSTM,通过引入门控机制改进 RNN 来有效地处理长期依赖关系。在本节中,了解了 LSTM 和 RNN 的基本原理,并介绍了如何在 PyTorch 中实现 LSTM。

盼小辉丶的博客 1万+

K均值聚类

K-均值聚类算法 1. 什么是K均值聚类算法 K均值聚类(k-means)是基于样本集合划分的聚类算法。K均值聚类将样本集合划分为k个子集,构成k个类,将n个样本分到k个类中,每个样本到其所属类的中心距离最小,每个样本仅属于一个类,这就是k均值聚类,同时根据一个样本仅属于一个类,也表示了k均值聚类是一种硬聚类算法。 2:K均值聚类算法的过程 2.1 k均值聚类的算法过程 输入:n个样本的集合 输出:样本集合的聚类 过程: (1)初始化。随机选择k的样本作为初始聚类的中心。 (2)对样本进行聚类。针对初始化时

weixin_41418263的博客 6万+

【车载以太网】ATU(Address Translation Unit / Address Table Unit)

【车载以太网】ATU(Address Translation Unit / Address Table Unit)

天赐好车的博客 150

【Python os模块完全指南】从基础到高效文件操作

本文通过15+个实战案例,系统讲解Python os模块的核心功能,涵盖文件操作、目录管理、路径处理等高频场景,助力初学者快速掌握系统交互技能。

赶紧的博客 1305

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python 基础:文件操作与 os 模块全解析

os 模块提供了与操作系统交互的各种功能,包括文件和目录操作、进程管理、环境变量操作等。在处理文件和目录相关任务时,os 模块非常强大且常用。

2301_81718046的博客 879

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python文件操作与异常处理详解 :基础方法、注意事项及os模块常用功能

本文介绍了python中的文件操作与异常处理机制

2403_86719076的博客 1293

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python基础--文件操作、OS模块使用、异常处理

目录大纲1. 文件概念2. 文件的作用3. 文件的打开与关闭3.1 打开文件3.2 写数据--write3.3 读数据--read3.4 读数据--readlines3.5 读数据--readline3.6 追加--a3.7 二进制文件的读写3.7.1 读数据--rb3.7.2 写数据--wb3.8 关闭文件4. 文件和文件夹的操作4.1 文件重命名4.2 删除文件4.3 创建文件夹4.4 获取当前目录5. 异常5.1 什么是异常5.2 异常处理5.2.1 作用5.2.2 语法5.2.3 try-final

冷小陌的博客 934

Python 文件操作与 OS 模块基础学习

本文介绍了Python文件操作与路径处理的核心知识,主要内容包括:1)文件基础操作,详细讲解了open()函数的使用方法、文件读写模式、读写操作以及文件指针管理;2)路径处理与os.path模块,重点介绍了路径拼接、路径判断和文件信息获取等方法;3)OS模块核心方法,包括目录创建/删除、文件操作和环境变量管理等。文章特别强调了编码问题、路径跨平台处理以及文件/目录操作的区别等常见易错点,并推荐使用with语句和os.path.join()等最佳实践方法。通过大量代码示例,全面展示了Python文件系统操作的

qq_73007985的博客 363

python基础--文件操作,os模块

文件操作 文件读取的三部曲:打开—&gt;操作----&gt;关闭 r:(默认) -只能读,不能写 -读取文件不存在,会报错 FileNotFoundError: [Errno 2] No such file or directory: w: -write only -文件不存在,不报错,并创建新的文件 -文件存在,会清空文件内容并写入新的内容 a: -write only -写:文件不存在,...

m0_37206112的博客 336

Python基础语法09--文件操作和os操作

一、编码格式 文件的读写原理 文件读写操作 文件对象常用的方法 with语句(上下文管理器) 目录操作 ...

nikeylee的博客 988

7月6日Python基础学习笔记——file 文件操作、编码常识、with 上下文管理、文件的读取&写入、os模块等

本文为7月6日Python基础学习笔记,分为十二个章节: - file 文件操作:创建文件对象、文本文件的写入; - 编码常识; - with 上下文管理; - 文本文件的读取:read()、readline()、readlines(); - 二进制文件的读取&写入; - 文件对象的常用属性和方法; - seek() 任意位置操作; - pickle 实现序列化&反序列化; - .csv 文件的读取和写入; - os 模块:调用操作系统可执行文件、获得文件信息、创建文件夹、递归创建、os.path 模块、w

Ashen_0nee的博客 1572

Python os模块文件操作完全指南:从基础到实战

本文全面介绍了Python os模块在文件操作中的核心功能,包括文件/目录存在性判断、属性获取、目录遍历、文件操作等基础方法。重点讲解了路径处理、批量操作、临时文件清理等实用技巧,并提供了跨平台兼容、错误处理和性能优化的专业建议。通过具体代码示例,展示了如何高效实现文件检测、属性查询、递归遍历等常见任务,帮助开发者掌握Python文件系统操作的关键技能,提升日常开发效率。文章强调在实际应用中应结合pathlib等现代模块,并注重代码的健壮性和跨平台兼容性。

源码分享的博客 69

python基础(10)——文件操作,os模块

#文件的操作 ''' #文件写入 #1.创建文件(创建文件,并且写入硬盘) fp = open('03.txt','w') print(fp,type(fp))#2.向文件中添加内容 fp.write('你好')#3.关闭文件 fp.close() '''#文件读取 #1.打开文件 #fp = open('03.txt','r') #2.读取文件 #print(fp.read())#3.关闭文件 #

tianabao的博客 362

2021-09-08 python基础知识学习:文件操作和os模块

1.文件操作(IO技术) (1)打开文件 f = open(文件名[,打开方式]) #文件写入 f = open('a.txt','a')#新建一个文件,a,文件不存在则创建 s = 'slene\nbai\n' f.write(s)#把字符串写在文件里 f.close() (2)编码 windows操作系统是GBK,python用Unicode编码 f = open('a.txt','w',encoding='UTF-8')#UTF-8新建一个文件,中文久不会乱码 s = 'slene\nba

weixin_42949850的博客 471

Python基础学习Day10(下)(csv文件操作、os和os.path模块、shutil模块压缩解压缩、递归)

文章目录CSV文件操作读csv文件写csv文件os和os.path模块os调用操作系统文件和命令os模块-文件和目录操作os模块下常用操作文件的方法os模块下关于目录操作的相关方法os.path模块walk()递归遍历所有文件shutil模块(拷贝和压缩)递归算法 CSV文件操作 csv(Comma Separated Values)是逗号分隔符文本格式,常用于数据交换、Excel文件和数据库数据的导入和导出。与Excel文件不同,CSV文件中: 值没有类型,所有值都是字符串 不能指定字体颜色等样式 不能指

qq_42881059的博客 1373

python3基础知识复习 -- IO编程(文件操作,OS模块,格式化)

python3基础知识复习 -- IO编程(文件操作,OS模块,格式化)

peanutfish的专栏 502
上一篇: Python基础--集合
PyRookie
博客等级 码龄8年 89粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值