Python文件操作与面向对象

Python文件操作与面向对象

一、文件备份案例

1、实例代码

# 1、接收用户输入的文件名(要备份的文件名)
oldname = input('请输入要备份的文件名称:')  # python.txt
# 2、规划备份文件名(python[备份].txt)
# 搜索点号
index = oldname.rfind('.')
# 返回文件名和文件后缀
name = oldname[:index]
postfix = oldname[index:]
newname = name + '[备份]' + postfix
# 3、对文件进行备份操作
old_f = open(oldname, 'rb')
new_f = open(newname, 'wb')# 读取源文件内容写入新文件
while True:content = old_f.read(1024)if len(content) == 0:breaknew_f.write(content)
# 4、关闭文件
old_f.close()
new_f.close()

2、查漏补缺

遗留问题:我们要备份的文件名称都是由用户通过input方法输入而来的,但是一定要记住,只要在程序中有人为输入,强烈建议对用户输入的数据进行校检。

所有用户的输入都是不靠谱的!

解决用户输入文件名称异常问题:

# 1、接收用户输入的文件名(要备份的文件名)
oldname = input('请输入要备份的文件名称:')  # python.txt
# 2、规划备份文件名(python[备份].txt)
# 搜索点号
index = oldname.rfind('.')
# 对index进行判断,判断是否合理(index > 0)
if index > 0:# 返回文件名和文件后缀name = oldname[:index]postfix = oldname[index:]newname = name + '[备份]' + postfix# 3、对文件进行备份操作old_f = open(oldname, 'rb')new_f = open(newname, 'wb')# 读取源文件内容写入新文件while True:content = old_f.read(1024)if len(content) == 0:breaknew_f.write(content)# 4、关闭文件old_f.close()new_f.close()
else:print('请输入正确的文件名称,否则无法进行备份操作...')

二、文件和文件夹操作

1、os模块

在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下:

第一步:导入os模块

import os

第二步:调用os模块中的相关方法

os.函数名()

2、与文件操作相关方法

编号函数功能
1os.rename(目标文件名称,新文件名称)对文件进行重命名操作
2os.remove(要删除文件名称)对文件进行删除操作

案例:把Python项目目录下的python.txt文件,更名为linux.txt,休眠20s,刷新后,查看效果,然后对这个文件进行删除操作。

# 第一步:导入os模块
import os
# 第三步:引入time模块
import time# 第二步:使用os.rename方法对python.txt进行重命名
os.rename('python.txt', 'linux.txt')# 第四步:休眠20s
time.sleep(20)# 第五步:删除文件(linux.txt)
os.remove('linux.txt')

3、与文件夹操作相关操作

前提:

import os

相关方法:

编号函数功能
1os.mkdir(新文件夹名称)创建一个指定名称的文件夹
2os.getcwd()current work directory,获取当前目录名称
3os.chdir(切换后目录名称)change directory,切换目录
4os.listdir(目标目录)获取指定目录下的文件信息,返回列表
5os.rmdir(目标目录)用于删除一个指定名称的"空"文件夹

案例1:

# 导入os模块
import os# 1、使用mkdir方法创建一个images文件夹
# os.mkdir('images')
# os.mkdir('images/avatar')# 2、getcwd = get current work directory
print(os.getcwd())# 3、os.chdir,ch = change dir = directory切换目录
os.chdir('images/avatar')
print(os.getcwd())# 切换到上一级目录 => images
os.chdir('../../')
print(os.getcwd())# 4、使用os.listdir打印当前所在目录下的所有文件,返回列表
print(os.listdir())# 5、删除空目录
os.rmdir('images/avatar')

案例2:准备一个static文件夹以及file1.txt、file2.txt、file3.txt三个文件

① 在程序中,将当前目录切换到static文件夹

② 创建一个新images文件夹以及test文件夹

③ 获取目录下的所有文件

④ 移除test文件夹

# 导入os模块
import os# ① 在程序中,将当前目录切换到static文件夹
os.chdir('static')
# print(os.getcwd())# ② 创建一个新images文件夹以及test文件夹
# os.mkdir('images')
# os.mkdir('test')# ③ 获取目录下的所有文件
# print(os.listdir())
for file in os.listdir():print(file)

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

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

相关文章

3D手势光流计算

GitHub - NVIDIA/flownet2-pytorch: Pytorch implementation of FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks 计算光流 conda create -n 3dgesture python3.8 conda activate 3dgesture ​pip install torch 1. import torch时报错ModuleNotFoun…

从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革

作者:黄晓萌(学仁) 背景 Job 表示短周期的作业,定时 Job 表示按照预定的时间运行Job,或者按照某一频率周期性的运行 Job。比如: 许多传统企业使用 Linux 自带的 crontab 来做定时任务的方案,该方案非常简单&#xff…

腾讯云服务器购买流程:一步步全流程购买指南

腾讯云服务器购买流程直接在官方秒杀活动上购买比较划算,在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动机,选择范围窄,但是…

Vue 问题解决

一、问题:TypeError: (0 , _message.default) is not a function 当没有default时,在其他页面import引入的时,必须加{}。 二、问题:Vue前端页面的表格数据总是一行一行的显示 使用Async/Await来解决前端数据一行一行显示的问题。可以将获取部…

鸿蒙原生应用再添新丁!搜狐集团、航旅纵横入局鸿蒙

鸿蒙原生应用再添新丁!搜狐集团、航旅纵横入局鸿蒙 来自 HarmonyOS 微博12月28日消息,搜狐集团宣布与华为达成全面合作!搜狐新闻近期将完成#鸿蒙原生应用#核心功能版本,搜狐视频也启动了#鸿蒙原生应用#开发!这不仅是一…

数据结构学习 Leetcode494 目标和

关键词:动态规划 01背包 dfs回溯 一个套路: 01背包:空间优化之后dp【target1】,遍历的时候要逆序遍历完全背包:空间优化之后dp【target1】,遍历的时候要正序遍历 题目: 解法一: …

k8s搭建(三、k8s从节点创建)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

Qt底层机制之对象树总结

Qt对象树是Qt框架中的一个重要概念,它用于管理对象之间的关系和生命周期。除了常规的对象树结构,Qt还提供了一些特殊的用法来扩展对象树的功能和灵活性。 1. 父子关系:Qt对象树通过设置父对象来建立父子关系。父对象负责管理子对象的内存分配和释放。这种关系可以通过`setP…

Frappe Charts:数据可视化的强大工具

一、产品简介: 一个简单、零依赖、响应式的 开源SVG 图表库。这个图表库无论是数据更新还是屏幕大小变化,都能快速响应并更新图表。数据生成和悬停查看都有舒服的交互动效,体验感很好。不仅支持配置颜色,外观定制也很方便。还支持…

操作教程|MeterSphere UI测试+VNC:简单、快捷地查看UI测试实时执行详情

编者注:本文为CSDN博主hxe116的原创文章。 原文链接为:https://blog.csdn.net/hxe116/article/details/134714960?spm1001.2014.3001.5502 作为一款一站式的开源持续测试平台,MeterSphere涵盖了测试跟踪、接口测试、UI测试和性能测试等功能…

centos下docker安装Rocketmq总结,以及如何更换mq端口

默认你已经装好了docker哈 安装docker-compose sudo curl -L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-composechmod x /usr/local/bin/docker-composedocker-compose --version成功打印…

【C#】深拷贝和浅拷贝

文章目录 深拷贝和浅拷贝的定义深拷贝(Deep Copy)浅拷贝(Shallow Copy) 深拷贝和浅拷贝的定义 深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是在复制对象时涉及的两个不同概念 深拷贝…

视频美颜SDK趋势畅想:未来发展方向与应用场景

当下,视频美颜SDK正不断演进,本文将深入探讨视频美颜SDK的发展趋势,探讨未来可能的方向和广泛的应用场景。 1.深度学习与视频美颜的融合 未来,我们可以期待看到更多基于深度学习算法的视频美颜SDK,为用户提供更高质量…

要让一个批处理文件(.bat)在每次开关机时自动运行

要让一个批处理文件(.bat)在每次开关机时自动运行,可以将它添加到系统的启动项中。这样,每次计算机启动时,批处理文件就会自动运行,无需手动打开。 以下是在 Windows 操作系统中将批处理文件添加到启动项的…

PyTorch中各种求和运算

首先定义张量A A torch.arange(20, dtypetorch.float32).reshape(5, 4) tensor([[ 0., 1., 2., 3.],[ 4., 5., 6., 7.],[ 8., 9., 10., 11.],[12., 13., 14., 15.],[16., 17., 18., 19.]])1. 降维求和 降维求和会沿指定轴降低张量的维度,使它变为一个标量。…

【数据结构】插入排序、选择排序、冒泡排序、希尔排序、堆排序

前言:生活中我们总是会碰到各种各样的排序,今天我们就对部分常用的排序进行总结和学习,今天的内容还是相对比较简单的一部分,各位一起加油哦! 💖 博主CSDN主页:卫卫卫的个人主页 💞 &#x1f44…

Buck电源设计常见的一些问题(四)MOS管振荡抑制方法(二)

MOS管振荡抑制方法(二)RC snubber 缓冲电路的设计 1. Snubber 电路2.开关回路等效电路3. RC参数设计1. Snubber 电路 由于寄生参数的存在,开关电源电路在开关动作瞬间会产生开关振铃。图 1 为 buck 电路开关节点 (两个开关与电感交汇点)的典型波形,可见在上管开通瞬间都…

力扣算法-Day14

第202题. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结…

E : DS查找—二叉树平衡因子

Description 二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。 计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡…

Vulnhub-Al-Web-1.0 靶机复现完整过程

一、信息收集 1.主机发现 arp-scan -l2.端口扫描 nmap -sV -p- 192.168.200.16PORTSTATESERVICEVERSIONMAC Address80/TCPOpenhttpApache httpd00:0C:29:C4:1B:78 (VMware) 3.目录扫描 python dirsearch.py -u http://192.168.200.16扫描出来这两个文件,首先先…