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. Springboot中IDE支持两种打包方式,即jar包和war包

    Springboot中IDE支持两种打包方式,即jar包和war包 打包之前修改pom.xml中的packaging节点,改为jar或者war    在项目的根目录执行maven 命令clean pa ...

  2. es6 学习小计

    es6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这称之为解构:

  3. kubernetes常用命令:缩容扩容回滚

    查看版本 kubectl version 查看节点 kubectl get nodes 部署app 说明: 提供deployment名称和app镜像地址(docker镜像地址) kubectl run ...

  4. 腾讯云直播+点播全线产品支持AV1,带来极致视频体验

    日前,腾讯视频云直播.点播.媒体处理全线产品均已支持AV1标准,据悉,腾讯云也是国内首家直播+点播同时支持AV1视频处理业务的公有云厂商. 据悉,AV1(Alliance for Open Media ...

  5. ACM算法锦集

    一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等) 3,文件操作(从文本文件中读入数据并输出到文本文 件中 ...

  6. Redis初识01 (简介、安装、使用)

    一.Reids介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...

  7. IDEA中使用git

    这篇文章写的很好,记录参考 [转载] https://blog.csdn.net/autfish/article/details/52513465 https://www.jianshu.com/p/ ...

  8. matlab界面UI设计资料

    一个实现图像灰度处理并归类于某已知相似图片的程序 软件:matlab2017a 算法:HU检索图像算法.Zernike算法 资料: ①: matlab遍历文件夹下所有图片和遍历所有子文件夹下图片 - ...

  9. JAVA调用系统命令:python、shell等

    实际项目开发场景中,可能会用到java项目调用系统命令的需求,如调用python或者shell脚本 可以参考如下例子,例子来源于ambari源码: \ambari\ambari-server\src\ ...

  10. VMware 网络介绍

       3.1 网卡介绍 如图所示,你的机器有两块网卡,一个是有线,一个是无线. 装完VM之后,会出现两块虚拟网卡,如图 VM有四种连接方式,我们着重介绍前三种    3.2 桥接 选择桥接模式,说明V ...