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

Python个人学习笔记(16):模块(os)

四、os模块

主要用于文件夹处理

(一)文件夹相关

os.makedirs(‘dirname1/dirname2’) :创建文件夹目录,不能重复创建,用的多
代码:

os.makedirs('a/b/c')

结果:
在这里插入图片描述
os.removedirs(‘dirname1’):删除文件夹,目录必须是空的,不空会报错。彻底删除,不会留在回收站,一定要小心误删。

os.mkdir(‘dirname’):生成单级目录,用得少,不如前面的好用
os.mkdir(‘a/b/c’):在a/b中创建c,如果a/b没有,就会报错

os.rmdir(‘a/b/c’):在a/b中删去c,只删一层
实际应用中一般不删除文件夹

(二)文件相关

os.listdir:列出文件名
代码:

name = os.listdir('a')
print(name)

结果:

['1.txt', '2.txt', 'b']

坑:只能拿到当前一层,下一层是拿不到的

os.remove(‘a/2.txt’):删除一个文件
open(“a/2.txt”,mode=“w”):创建文件

os.rename(‘old’,‘new’):文件重命名

os.getcwd():获取当前python脚本工作的目录路径,相当于./
代码:

print(os.getcwd())

结果:

D:\PycharmProjects\樵夫老师Python零基础课程\4_模块

os.chdir(“dirname”):改变当前脚本工作目录,相当于cd

os.chdir('./a')
print(os.getcwd())

特殊情况下会用,方便在某个文件夹内进行文件操作,一般不用

os.system(“bash command”):运行shell命令

os.system(“dir”):调用命令,会出乱码,可以执行一条命令
os.popen(“dir”):调用命令,不乱码,可以执行一条命令

(三)路径相关

os.path.exists():判断一个路径是否存在

print(os.path.exists('a/b/3.txt'))

既能判断文件,也能判断文件夹

os.isdir(“a/b”):判断是否为文件夹

print(os.path.isdir("a/b"))

比exists判断的更精细,如果不存在,那么会得到False

os.path.isfile(“a/b”):判断是否为文件

print(os.path.isfile("a/b"))

os.path.abspath(“a/b”):得到a/b的绝对路径

os.path.split():切割路径为文件夹和文件
代码:

print(os.path.split(os.path.abspath("a/b/2.txt")))

结果:

('D:\\PycharmProjects\\樵夫老师Python零基础课程\\4_模块\\a\\b', '2.txt')

前面是文件夹,后面是文件

os.path.dirname():得到绝对路径中的文件夹
代码:

print(os.path.dirname(os.path.abspath("a/b/2.txt")))

结果:

D:\PycharmProjects\樵夫老师Python零基础课程\4_模块\a\b

os.path.basename():得到绝对路径中的文件
代码:

print(os.path.basename(os.path.abspath("a/b/2.txt")))

结果:

2.txt

os.path.join():拼接路径,自动使用不同系统的相应文件系统分隔符来拼接
代码:

r = os.path.join('a/b','c','d.txt')
print(r)

结果:

a/b\c\d.txt

os.path.getsize():获取文件大小
代码:

r = os.path.getsize('a/哈哈哈.txt')
print(r)

结果:

17

结果表示文件的字节数

(四)扩展:遍历文件夹中的内容

代码:

path = "a"
for name in os.listdir(path): # 得到a里面所有的文件名# 需要拼接路径new_path = os.path.join(path, name)if os.path.isdir(new_path):print('文件夹',name)else:print("普通文件",name)

结果:

普通文件 1.txt
普通文件 2.txt
文件夹 b
文件夹 c
文件夹 d
普通文件 哈哈哈.txt

如果是文件夹,那么这个代码应该重新执行一次,但没办法确定到底要套多少层
把这段代码写成函数就能处理了
代码:

def func(path):for name in os.listdir(path):new_path = os.path.join(path, name)if os.path.isdir(new_path):print('文件夹', name)func(new_path) # 递归循环,不需要确定循环层数,直到不存在文件夹为止else:print("普通文件", name)func("a")

结果:

普通文件 1.txt
普通文件 2.txt
文件夹 b
普通文件 3.txt
文件夹 f
普通文件 ffff.txt
文件夹 c
文件夹 d
普通文件 222.txt
普通文件 333.txt
普通文件 哈哈哈.txt

结果看不出结构,加入缩进
代码:

def func(path,ceng):for name in os.listdir(path):new_path = os.path.join(path, name)if os.path.isdir(new_path):print(ceng*'\t','文件夹', name)func(new_path,ceng+1) # 递归循环,不需要确定循环层数,直到不存在文件夹为止else:print(ceng*'\t',"普通文件", name)func("a",1)

结果:

	 普通文件 1.txt普通文件 2.txt文件夹 b普通文件 3.txt文件夹 f普通文件 ffff.txt文件夹 c文件夹 d普通文件 222.txt普通文件 333.txt普通文件 哈哈哈.txt

也可以用os.walk进行遍历,直接遍历文件夹中所有内容

(五)创建文件的正确流程

def creat_file(path, gai):# 先处理路径dirname = os.path.dirname(path)if not os.path.exists(dirname):os.makedirs(dirname)# 到此文件夹没问题了,然后考虑文件if os.path.exists(path):if gai:open(path, 'w').close()else:return # 文件已经存在,并且用户选择不覆盖else:open(path, 'w').close() # 创建文件creat_file("张三丰/金花婆婆/呵呵.txt",True)

相关文章:

Python个人学习笔记(16):模块(os)

四、os模块 主要用于文件夹处理 (一)文件夹相关 os.makedirs(‘dirname1/dirname2’) :创建文件夹目录,不能重复创建,用的多 代码: os.makedirs(a/b/c)结果: os.removedirs(‘dirname1’)&…...

虚拟地址空间(下)进程地址空间(上)

一.关于页表组成 1.权限(rwx) 作用:如1.让代码区变成只读的 2.写时拷贝的实现:子进程创建时其页表指向的父进程代码和数据权限都是只读的,子进程试图修改,触发错误,系统开始写时拷贝。 来源:…...

【数据集分享】青藏高原两次强震玛多地震和漾濞地震的震源过程

2021年5月21日,5小时内在青藏高原不同区域发生了漾濞6.4级和玛多7.4级强烈地震,表明印度板块和欧亚大陆板块的碰撞汇聚作用下青藏高原持续和频繁的 剧烈构造运动和地震活动。本研究利用地震记录和空间对地观测同震位移资料(InSAR)…...

jmeter环境搭建及使用

Meter 是一个开源的性能测试工具,用于测试静态和动态资源的性能。 1、安装 官网下载: 下载地址:Apache JMeter - Download Apache JMeter 网盘下载: 通过百度网盘分享的文件:apache-jmeter-5.6.3.rar 链接&#x…...

Python 鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…...

网络编程--服务器双客户端聊天

写一个服务器和客户端 运行服务器和2个客户端,实现聊天功能 客户端1和客户端2进行聊天,客户端1将聊天数据发送给服务器,服务器将聊天数据转发给客户端2 要求: 服务器使用 select 模型实现 ,客户端1使用 poll 模型实现…...

yum软件包乾坤大挪移(Yum Package Qiankun Great Migration)

yum软件包乾坤大挪移 背景 由于很多的生产环境是无法连接外网的,因此用yum或者dnf命令来安装软件包常常是一个比较麻烦的事情,原因是很多软件的依赖很复杂,如果要一个个下载、拷贝、再安装,这往往是一个非常繁琐冗杂的过程&…...

Java:读取中文,read方法

public static void main(String[] args) throws IOException {FileReader fr new FileReader("C:\\aaa\\a.txt");//字符流的底层也是一个字节一个字节读取的,遇到中文就一次读多个,GBK一次读两个,UTF-8一次读三个字节//idea默认U…...

[GHCTF 2025]真会布置栈吗?

题目是一个聊天室,我们先按照题目使用 /help Help: /help 显示此帮助信息 /msg [text] 在当前频道发送消息 /nick [name] 更改你的用户名 /list 列出可用的频道 /join [channel] 切换到不同的频道 /channel …...

集合的练习1-2

//练习1&#xff1a; import java.util.ArrayList;public class ArraylistTest1 {public static void main(String[] args){ArrayList<String> listnew ArrayList<>();//需求&#xff1a;定义一个集合&#xff0c;添加字符串&#xff0c;并进行遍历//遍历格式&…...

英语词性--数词

文章目录 数词概念数词分词基数词序数词 基数与序数词的区别基变序的规律 数词概念 数词&#xff08;Numerals&#xff09; 是英语中用于表示 数量&#xff08;基数&#xff09;或顺序&#xff08;序数&#xff09; 的词类&#xff0c;通常用于描述数字、计数、顺序等。 例如&…...

面试整理--一个报告生成的方案解析

最近又快到了年后找工作的时间&#xff0c;近期写点工作积累&#xff0c;供大家参考。 欢迎关注公主号【测试开发备忘录】&#xff0c;交流职场技巧和经验 首先从工作中一个报错来展开: Start directory is not importable: 错误信息 "Start directory is not importable…...

C#零基础入门篇(18. 文件操作指南)

## 一、文件操作基础 在C#中&#xff0c;文件操作主要通过System.IO命名空间中的类来实现&#xff0c;例如File、FileStream、FileInfo等。 ## 二、常用文件操作方法 ### &#xff08;一&#xff09;文件读取 1. **使用File.ReadAllText方法读取文件内容为字符串** …...

Linux 一步部署DHCP服务

#!/bin/bash #脚本作者和日期 #author: PEI #date: 20250319 #检查root权限 if [ "$USER" ! "root" ]; then echo "错误&#xff1a;非root用户&#xff0c;权限不足&#xff01;" exit 0 fi #防火墙与高级权限 systemctl stop firewa…...

如何打造安全稳定的亚马逊采购测评自养号下单系统?

在当今的电商领域&#xff0c;亚马逊作为全球领先的在线购物平台&#xff0c;其商品种类繁多&#xff0c;用户基数庞大&#xff0c;成为了众多商家和消费者的首选。而对于一些需要进行商品测评或市场调研的用户来说&#xff0c;拥有一个稳定、安全的亚马逊账号体系显得尤为重要…...

【大模型学习】第二十四章 生成式人工智能(GAI)简介

目录 一、什么是生成式人工智能&#xff08;GAI&#xff09;&#xff1f;‌ 二、核心技术原理‌ ‌三、典型应用场景‌ ‌四、技术特点与挑战‌ 五、训练优化策略 六、关键性能指标&#xff08;2025年基准&#xff09; ‌七、技术演进方向‌&#xff1a; 一、什么是生成式…...

Pytorch中layernorm实现详解

平时我们在编写神经网络时&#xff0c;经常会用到layernorm这个函数来加快网络的收敛速度。那layernorm到底在哪个维度上进行归一化的呢&#xff1f; 一、问题描述 首先借用知乎上的一张图&#xff0c;原文写的也非常好&#xff0c;大家有空可以去阅读一下&#xff0c;链接放…...

YOLO11报错:AttributeError: module ‘torch‘ has no attribute ‘OutOfMemoryError‘

事情是这样的&#xff1a;前几天YOLO11的代码还是可以训练的&#xff0c;昨天训练了一天&#xff0c;今天换模型就报这个错。 AttributeError: module torch has no attribute OutOfMemoryError我查了一下&#xff1a;YOLO11官方代码issues里面也有人有同样的问题&#xff0c;…...

基于java的ssm+JSP+MYSQL的高校四六级报名管理系统(含LW+PPT+源码+系统演示视频+安装说明)

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…...

Starrocks 命令 Alter table DISTRIBUTED 重分布数据的实现

背景 在前文Starrocks 写入报错 primary key memory usage exceeds the limit中&#xff0c;可以通过ALTER TABLE xxxx DISTRIBUTED BY HASH(xx) BUCKETS 50;来改变数据的分布状态,具体的执行过程是怎么样的呢&#xff1f; 分析 首先对应的g4文件中为 alterTableStatement &…...

ns3使用入门_基于ns3.44_Part2_配置模块参数的Configuration 和Attributes

前言 事实上ns3的官方手册很全,相关书籍也是有的,官网先贴在这里: ns-3 | a discrete-event network simulator for internet systemsa discrete-event network simulator for internet systemshttps://www.nsnam.org/相关的脚本介绍也都有一些: ns-3.35_wifi-he-networ…...

性能测试过程实时监控分析

性能监控 前言一、查看性能测试结果的3大方式1、GUI界面报告插件2、命令行运行 html报告3、后端监听器接入仪表盘 二、influxDB grafana jmeter测试监控大屏1、原理&#xff1a;2、linux环境中influxDB 安装和配置3、jmerer后端监听器连接influxDB4、linux环境总grafana环境搭…...

Springboot List集合的校验方式

pom.xml 引入 <dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.2.0.Final</version></dependency><dependency><groupId>org.springframework.b…...

C程序设计(第五版)及其参考解答,附pdf

通过网盘分享的文件&#xff1a;谭浩强C语言设计 链接: https://pan.baidu.com/s/1U927Col0XtWlF9TsFviApg?pwdeddw 提取码: eddw 谭浩强教授的《C程序设计》是C语言学习领域的经典教材&#xff0c;其内容深入浅出&#xff0c;适合不同层次的学习者。 一、教材版本与特点 最…...

【蓝桥杯速成】| 7.01背包练习生

题目一&#xff1a;分割等和子集 问题描述 416. 分割等和子集 - 力扣&#xff08;LeetCode&#xff09; 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a…...

杰理科技JL703N双模蓝牙芯片—云信

杰理科技JL703N芯片运算能力、接收灵敏度、发射功率、音频性能等指标均处于行业一流水平&#xff0c;能满足多场景的应用需求&#xff0c;具有以下明显优势&#xff1a; 一、高性能双核浮点CPU&#xff0c;算力十足 JL703N芯片搭载了32位高性能双核CPU&#xff0c;主频高达32…...

Rust + 时序数据库 TDengine:打造高性能时序数据处理利器

引言&#xff1a;为什么选择 TDengine 与 Rust&#xff1f; TDengine 是一款专为物联网、车联网、工业互联网等时序数据场景优化设计的开源时序数据库&#xff0c;支持高并发写入、高效查询及流式计算&#xff0c;通过“一个数据采集点一张表”与“超级表”的概念显著提升性能…...

Nvidia 官方CUDA课程学习笔记

之前心血来潮学习了一下Nvidia CUDA&#xff0c;外行&#xff0c;文章有理解不当的地方&#xff0c;望指正。 主要根据以下Nvidia官方课程学习&#xff1a; https://www.bilibili.com/video/BV1JJ4m1P7xW/?spm_id_from333.337.search-card.all.click&vd_sourcec256dbf86b…...

基于TCN-BiLSTM-Attention的序列数据预测(功率预测、故障诊断)模型及代码详解

TCN-BiLSTM-Attention结构 在TCN-BiLSTM-Attention结构中,各层之间的协同工作构成了一个强大的时间序列预测模型。这种组合不仅充分利用了每种模型的优势,还通过精心设计的连接方式最大化了模型的性能。 TCN-BiLSTM-Attention结构的主要组成部分包括: 时间卷积网络(TCN) 功…...

【AI News | 20250319】每日AI进展

AI Repos 1、XianyuAutoAgent 实现了 24 小时自动化值守的 AI 智能客服系统&#xff0c;支持多专家协同决策、智能议价和上下文感知对话&#xff0c;让我们店铺管理更轻松。主要功能&#xff1a; 智能对话引擎&#xff0c;支持上下文感知和专家路由阶梯降价策略&#xff0c;自…...