(安全之路)从头开始学python编程之文件操作
0x00 python学习路径
b站(哔哩哔哩)视频,w3cschool(详情百度),官方文档,各大群内获取资料等等方式
0x01 python的学习要点
open()函数:有两个参数,文件名跟模式,模式分四种
- "r" - 读取 - 默认值。打开文件进行读取,如果文件不存在则报错。
- "a" - 追加 - 打开供追加的文件,如果不存在则创建该文件。
- "w" - 写入 - 打开文件进行写入,如果文件不存在则创建该文件。
- "x" - 创建 - 创建指定的文件,如果文件存在则返回错误。
可以指定文件是应该作为二进制还是文本模式进行处理。
"t" (txt)- 文本 - 默认值。文本模式。"b"(binary) - 二进制 - 二进制模式(例如图像)。
0x02 利用函数进行文本调用
- 在f = open("demofile.txt")跟f = open("demofile.txt", "rt")是一样的,因为r(read)t(txt)是默认的,不写也没有关系,不过可以知道open函数的使用方法。要确定文件是否存在,不然会报错。
- 在open函数(用于返回文件对象)后,还有一个read函数,用于读取文件内容,例如
f = open("demofile.txt", "r")
print(f.read())- 注释:如果你第一次尝试这个操作,不打印,只open的话,是没有任何回显的哦,不要以为是出了什么问题,要记得print。(因为我傻傻的遇到了),还有就是要把文件拖入程序的文件夹中,不然获取不到文件的哦。(常识)
- 在read函数里面可以用数字表示显示前几个字符,如read(5),则显示文件中前五个字符,readline则是返回第一行,有意思的是,如果调用两次readline则是调用前两行,而不是重复调用第一行两次!
f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())- 逐行遍历整个文件
f = open("demofile.txt", "r")
for x in f:
print(x)- 调用完以后要保持一个好习惯,拿来了要记得用完带走,在运行完方法后,不用了要f.close()来关闭文件
- 注释:在某些情况下,由于缓冲,您应该始终关闭文件,在关闭文件之前,对文件所做的更改可能不会显示。这句话其实我现在不是很懂,但是告诉我们还是得好好的关闭文件。
- 接着就是write()函数,用于在你打开的文件中写入你想要添加的内容
f = open("demofile2.txt", "a")
f.write("Now the file has more content!")
f.close() # 追加后,打开并读取该文件:
f = open("demofile2.txt", "r")
print(f.read())- 注释:追加后务必要先关闭文件,然后再次重新打开,不能直接读取不然会报错,提示不能读文件,可能就是上面的缓冲问题,得关闭文件。
像这些就很好理解,都没有什么绕的地方,但是注意open里面的参数a,是代表追加,如里面改成了w,则会直接覆盖文件内原本的所有内容,切记要当心!!多多练习,分清参数的区别。
- 最后就是文件删除了,文件删除必须导入OS模块,并运行其 os.remove() 函数:
import os
os.remove("demofile.txt")- 如果你确定存在这个文件,并且名字没有打错,这样就可以删除文件了,如果不存在是会报错的,为了防止报错,我们还需要验证文件是否存在:
import os
if os.path.exists("demofile.txt"):
os.remove("demofile.txt")
else:
print("The file does not exist")- 除了删除文件,还有可以删除文件夹这种骚操作,具体就是调用os.rmdir()函数:
import os
os.rmdir("myfolder")- 就这样就能删除整个myfolder文件夹,但是需要注意的是,文件夹里面有文件,你是无法删除的,只能删除空文件!!!
- 问题:如何删除某一行中的内容?
- 附上一段综合代码,这个就是问题的例子,如果能够解决这个问题,证明已经基本掌握对模式的概念跟文件所能使用的大多数方法。(这段代码我也是踩了不少坑)
files = open('test.txt','w+')
files.write("123\n123\n123\n123")
files.close()
files = open('test.txt','r+')
l4 = files.readlines()
print(l4)
l4[2]=''
files.close()
files = open('test.txt','w+')
l4 = files.writelines(l4)
files.close()
files = open('test.txt','r+')
print(files.read())
files.close()
0x03 总结
有趣的是,read(5)以后,如果你还要readline(),那么它会先把你read以后那行后面的数据当成一行输出,而不是直接去找第二行输出,还有调试的时候记得多用#注释符,批量注释可以用ctrl+/进行批量注释便于调试程序,还可以设断点哦,这个以后再谈。文件的基本操作就已经结束了,这个感觉还是相当的实用的,对于脚本而言,可以说是非常重要了吧,多加练习,亲自实践才能掌握的哦(不会编程的安全人员只是一个脚本小子(小声比比))。有问题请指正,感谢!
(安全之路)从头开始学python编程之文件操作的更多相关文章
- 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...
- 【学习笔记】--- 老男孩学Python,day9, 文件操作
有 + 就是有光标,注意光标位置 不同模式打开文件的完全列表: http://www.runoob.com/python/python-files-io.html 模式 描述 r 以只读方式打开文件 ...
- [置顶] 和孩子们一起学Python编程
1. 推荐书名 Computer Programming for Kids and Other Beginners in Python, 4Ed.pdf 中文译名:<和孩子们一起学Pyt ...
- 《趣学Python编程》
<趣学Python编程> 基本信息 作者: (美)Jason Briggs 译者: 尹哲 出版社:人民邮电出版社 ISBN:9787115335951 上架时间:2014-2-21 出版日 ...
- 入门Python:《趣学Python编程》中英文PDF+代码
入门python推荐学习<趣学python编程>,语言轻松,通俗易懂,讲解由浅入深,力求将读者阅读和学习的难度降到最低.任何对计算机编程有兴趣的人或者首次接触编程的人,不论孩子还是成人,都 ...
- 房地产大佬潘石屹推荐学Python编程,这本从0到1就够了
潘石屹推荐学Python编程,很多人都不相信,他的微博真真切切. 连房地产都开始学Python了,因为要听懂机器,让机器为我所用. 再不学习Python真的晚了!!!! 如何学? 怎么学? 还是推荐高 ...
- 趣学Python编程PDF高清完整版免费下载|百度网盘
百度网盘:趣学Python编程PDF高清完整版免费下载 提取码:ts47 内容简介 python是一款解释型.面向对象.动态数据类型的高级程序设计语言.python语法简捷而清晰,具有丰富和强大的类库 ...
- 学Python编程能做什么工作?从事什么岗位?——这些问题你知道吗?
前言 学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都 ...
- Python编程之列表操作实例详解【创建、使用、更新、删除】
Python编程之列表操作实例详解[创建.使用.更新.删除] 这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋 ...
随机推荐
- Springboot中IDE支持两种打包方式,即jar包和war包
Springboot中IDE支持两种打包方式,即jar包和war包 打包之前修改pom.xml中的packaging节点,改为jar或者war 在项目的根目录执行maven 命令clean pa ...
- es6 学习小计
es6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这称之为解构:
- kubernetes常用命令:缩容扩容回滚
查看版本 kubectl version 查看节点 kubectl get nodes 部署app 说明: 提供deployment名称和app镜像地址(docker镜像地址) kubectl run ...
- 腾讯云直播+点播全线产品支持AV1,带来极致视频体验
日前,腾讯视频云直播.点播.媒体处理全线产品均已支持AV1标准,据悉,腾讯云也是国内首家直播+点播同时支持AV1视频处理业务的公有云厂商. 据悉,AV1(Alliance for Open Media ...
- ACM算法锦集
一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等) 3,文件操作(从文本文件中读入数据并输出到文本文 件中 ...
- Redis初识01 (简介、安装、使用)
一.Reids介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...
- IDEA中使用git
这篇文章写的很好,记录参考 [转载] https://blog.csdn.net/autfish/article/details/52513465 https://www.jianshu.com/p/ ...
- matlab界面UI设计资料
一个实现图像灰度处理并归类于某已知相似图片的程序 软件:matlab2017a 算法:HU检索图像算法.Zernike算法 资料: ①: matlab遍历文件夹下所有图片和遍历所有子文件夹下图片 - ...
- JAVA调用系统命令:python、shell等
实际项目开发场景中,可能会用到java项目调用系统命令的需求,如调用python或者shell脚本 可以参考如下例子,例子来源于ambari源码: \ambari\ambari-server\src\ ...
- VMware 网络介绍
3.1 网卡介绍 如图所示,你的机器有两块网卡,一个是有线,一个是无线. 装完VM之后,会出现两块虚拟网卡,如图 VM有四种连接方式,我们着重介绍前三种 3.2 桥接 选择桥接模式,说明V ...