python文件操作(二)

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)

猜你喜欢

转载自blog.csdn.net/weixin_44540204/article/details/87879614