1。flush()实时将数据写进磁盘:
import sys,time
for i in range(20):
sys.stdout.write("#") #sys.stdout方法在同一行打印
sys.stdout.flush() #每打印一次#写入一次
time.sleep(0.3) #每隔0.3秒打印一次
2。truncate()截取文件:
f = open("d.txt" , mode= "a" )
f.truncate(10) #截取前十个字符
3。tell() and seek() 联合使用:
f = open('d.txt','w+',encoding='utf-8')
f.write("-----------------------------1------------------------")
f.write("\n-----------------------------2------------------------")
f.write("\n-----------------------------3------------------------")
f.write("\n-----------------------------4------------------------")
print(f.tell()) #打印光标所在位置
f.seek(10) #使光标回到第十个字符的位置
print(f.readline()) #打印当前行
4。修改文件指定行:
当我们读取文件中内容后,如果想要修改文件中的某一行或者某一个位置的内容,在python中是没有办法直接实现的,如果想要实现这样的操作只能先把文件所有的内容全部读取出来,然后进行匹配修改后写入到新的文件中。
f = open('d.txt','r',encoding='utf-8') #旧文件
f_new = open('c.txt','w',encoding='utf-8') #新文件
for line in f:
if "boy" in line:
line = line.replace("boy","halo")
f_new.write(line)
f.close()
f_new.close()
5。flush()的作用:
f = open('1.txt','a',encoding='utf-8')
f.write('123')
f.flush() #将缓存内容强制写进磁盘
input('asdfasd')
6。with语句:
with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都
会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭/线程中锁的自
动获取和释放等。
with open("d.txt") as f:
print(f.read())
7。fileinput模块操作:
作用:fileinput 可以同时对一个或多个文件中的内容进行迭代,遍历等操作。该
模块的 input() 方法有点类似文件的 readlines()方法,区别是前者只是迭代一个
对象,每次只生成一行,而后者是一次性读取所有行,当遇到大文件时,无疑前
者更有效率。
fileinput模块函数:
函数 | 功能 |
---|---|
input() | 返回能够用于迭代一个或多个文件中所有行的对象 |
filename() | 返回当前文件的名称 |
lineno() | 返回当前读取的行的数量 |
isfirstline() | 返回当前行是否文件的第一行 |
filelineno() | 返回当前读取行在文件中的行数 |
import fileinput
with fileinput.input('d.txt') as lines:
for line in lines:
print(line.strip())
8。os模块操作:
1)os.getcwd():获取当前路径
import os
print(os.getcwd()) #程序所在目录
2)os.listdir(path):列出目录路径 path 下有哪些文件,若不写 path,则默认为当前目录
import os
print(os.listdir("haha")) #程序所在目录
3)创建和删除目录:
os.mkdir(path):path为要创建的目录
os.rmdir(path):path为要删除的目录
4)遍历文件:
os.walk(path)