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 123 123 123") 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+/进行批量注释便于调试程序,还可以设断点哦,这个以后再谈。文件的基本操作就已经结束了,这个感觉还是相当的实用的,对于脚本而言,可以说是非常重要了吧,多加练习,亲自实践才能掌握的哦(不会编程的安全人员只是一个脚本小子(小声比比))。有问题请指正,感谢!