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编程之文件操作的更多相关文章

  1. 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...

  2. 【学习笔记】--- 老男孩学Python,day9, 文件操作

    有 + 就是有光标,注意光标位置 不同模式打开文件的完全列表:  http://www.runoob.com/python/python-files-io.html 模式 描述 r 以只读方式打开文件 ...

  3. [置顶] 和孩子们一起学Python编程

    1. 推荐书名 Computer Programming for Kids and Other Beginners in Python, 4Ed.pdf     中文译名:<和孩子们一起学Pyt ...

  4. 《趣学Python编程》

    <趣学Python编程> 基本信息 作者: (美)Jason Briggs 译者: 尹哲 出版社:人民邮电出版社 ISBN:9787115335951 上架时间:2014-2-21 出版日 ...

  5. 入门Python:《趣学Python编程》中英文PDF+代码

    入门python推荐学习<趣学python编程>,语言轻松,通俗易懂,讲解由浅入深,力求将读者阅读和学习的难度降到最低.任何对计算机编程有兴趣的人或者首次接触编程的人,不论孩子还是成人,都 ...

  6. 房地产大佬潘石屹推荐学Python编程,这本从0到1就够了

    潘石屹推荐学Python编程,很多人都不相信,他的微博真真切切. 连房地产都开始学Python了,因为要听懂机器,让机器为我所用. 再不学习Python真的晚了!!!! 如何学? 怎么学? 还是推荐高 ...

  7. 趣学Python编程PDF高清完整版免费下载|百度网盘

    百度网盘:趣学Python编程PDF高清完整版免费下载 提取码:ts47 内容简介 python是一款解释型.面向对象.动态数据类型的高级程序设计语言.python语法简捷而清晰,具有丰富和强大的类库 ...

  8. 学Python编程能做什么工作?从事什么岗位?——这些问题你知道吗?

    前言 学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都 ...

  9. Python编程之列表操作实例详解【创建、使用、更新、删除】

    Python编程之列表操作实例详解[创建.使用.更新.删除] 这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋 ...

随机推荐

  1. EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案-Onvif(三)使用Onvif协议进行设备PTZ云台控制

    背景分析 熟悉EasyNVR产品的盆友们应该都知道,EasyNVR主要完成的是RTSP视频流到RTMP/HLS/Flv的转码,并提供了一套api和一个可视化管理平台来便于调用.同时支持ONVIF协议进 ...

  2. photoshop7.0 排版一寸照片、2寸照片

    说明:必须先照一张一寸电子照片,否则是无法做成 1.本例同样采用photoshop CS5制作,其它版本通用,这里采用上一教程“PS照片处理教程-制作一寸照片并排版”的处理效果图进行排版,首先在PS中 ...

  3. Linux系统下的SSH 使用总结

    对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验而言,做一些总结记录来下. -bash: ...

  4. java内存模型,内存区域

    Java虚拟机内存区域总结:Java虚拟机相当于一个抽象的计算机操作系统, 其管理的内从区域大体上可以分为栈和堆,就像c或c++中对内存的分类一样, 但这样的分类对于Java虚拟机来说太过粗浅, 实际 ...

  5. Git config文件

    查看该文件: git config --global --list Ref: https://blog.csdn.net/themagickeyjianan/article/details/79683 ...

  6. 理解SQL Server中索引的概念,原理以及其他(转载)

    简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索 ...

  7. Python实现堆

    堆 (heap) 是一种经过排序的完全二叉树,其中任一非叶子节点的值均不大于(或不小于)其左孩子和右孩子节点的值. 注:定义来自百度百科. 堆,又被为优先队列(priority queue).尽管名为 ...

  8. Django框架第九篇--Django和Ajax、序列化组件(serializers)、自定义分页器、模型表choice参数

    Django和Ajax 一.什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”.即使用Javascript语 ...

  9. NOI2019:Stay at Home

    7.16 NOI D1 从同步赛开始更起好了 先看了一圈题目,发现T1非常可做,二次函数因为对称轴在\(x < 0\)的地方所以有跟一次函数类似的单调性,搞个单调队列维护一下似乎就可以了.大力码 ...

  10. Spring Boot 优雅的配置拦截器方式

    https://my.oschina.net/bianxin/blog/2876640 https://cs.xieyonghui.com/java/55.html 其实spring boot拦截器的 ...