欢迎来到LYBLaoInB的博客
LYBLaoInB
LYBLaoInB
回首往事,不因虚度年华而悔恨,不因碌碌无为而愧疚

Python第五篇--文件操作

文件操作主要就是打开,读,写,保存,关闭

  f=open(filename)

  f.read(length)读多少,如果没有length就是全部读到内存中  f.readline()这个是读一行。读取的时候会有一个光标,如果执行一次readline则下次再执行其他读操作,从第二行开始进行以此类推

  f.write(data)

  f.close()保存并关闭

文件操作的模式

  r  w a 分别表示只读,创建,追加模式。python中文件操作只能存在一种模式,不能读进来修改再创建。w模式相当于创建,如果存在这个文件名,则覆盖。不存在会创建

  f=open(filename,mode="w")

f=open(file="d:/test_file.txt",mode="w")
f.write("this is the first line \n")
f.write("this is the second line")
f.close()

  追加模式下,文件追加内容还是f.write(data)并不是用append!!!!!

  默认模式是r

文件循环读行

  for line in f:

    print(line)

文件操作的其他方法

  seek()当前光标后移几个字节,UTF-8中一个中文3个字节,gbk中一个中文4个字节

  flush()强制内存刷到硬盘上,因为文件write其实是先写到内存上,然后满了才刷到硬盘,因为硬盘很慢,避免频繁的硬盘操作。这个在很重要的内容保存时使用,避免掉电丢失数据

  其他懒得写了。。。

混合模式操作文件(不常用,只是可以用)

  w+ a+

  写入后可以读出,读入后可以追加写,追加后可以读,但是光标会到最后需要seek(0)

  seek指定位置,修改了内容默认的是会将后面内容覆盖的,就像insert模式

如果将一个文件的内容读出来,判断如果有XXX替换为***

  思路是先读出来每一行,判断是否有XXX,replace,最后重命名一下

文件重命名需要用到os工具包

  os.rename()

import os
f=open(file="d:/test_file.txt",mode="r")
newf=open("d:/test_file_new.txt","w")
for line in f:
    line=line.replace("XXX","***")
    newf.write(line)
newf.close()
f.close()
os.replace("d:/test_file_new.txt","d:/test_file.txt")  #如果替换后的文件已经存在了,会覆盖,就和重命名后提示是否覆盖,点击了是效果一样

  

posted @ 2020-08-07 11:34  LiuYongbo  阅读(184)  评论(0)    收藏  举报
<--将网易云歌单中的id复制到上面的data-id中就可以了 http://music.163.com/playlist?id=3103841025&userid=1698529278 -->