你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

python之文件与数据格式化

2021/12/20 2:22:19

⽂件的作⽤:

可以永久的保存数据.

⽂件在硬盘中存储的格式是⼆进制.

打开⽂件

读写⽂件

关闭⽂件

读⽂件-r

#1.打开文件,是文件从硬盘中存到内存中
# open(file, mode='r' , encoding)
#file要操作的文件名字,类型是str
# mode,文件打开的方式,r(read)只读打开,w(write)只写打开a(append)追加打开
# encoding文件的编码格式,常见的编码格式有两种,一种是gbk,一种是utf-8
#返回值,文件对象,后续所有的文件操作,都需要通过这个文件对象进行


#以只读的方式打开当前目录中,1.txt 文件,文件不存在会报错
f = open('1.txt ' , 'r')

# 2.读文件文件对象.read( )
buf = f.read()
print(buf)

#3.关闭文件文件.cLose()将内存中三大文件同步到硬盘中f
.close()

写⽂件-w

# 1、打开文件w方式打开文件,文件不存在,会创建文件,文件存在,会覆盖清空原文件
f = open( 'a.txt', 'w ' , lencoding='utf-8")

#2.写文件文件对象.write(写入文件的内容)

f.write( ' he1lo wor1d ! \n')
f.write( ' he1lo python! \n')
f.write('你好,中国!')

#3.关闭文件
f.close()

追加⽂件-a

#a方式打开文件,追加内容,在文件的末尾写入内容
#文件不存在,会创建文件
#注意点:不管是a方式打开文件,还是w方式打开文件,写内容,都是使用 write()函数
f = open( 'b.txt' , 'a', encoding=' utf-8')

# f. write( ' hello worLd ! \n ' )
f.write( '111\n')
f.close()

⽂件读操作

read()

#1.打开文件
f = open( 'a.txt ' , 'r', encoding=' utf-8 ' )
#2.读写文件文件对象.read(n) n一次读取多少字节的内容,默认不写,读取全部内容

buf = f.read( 3)
print(buf)        # 123
print( ' -'*30)
buf = f.read(3)#5
print(buf)

#3.关闭文件
f.close()

 按⾏读取

f = open( 'a.txt ' , 'r', encoding= ' utf-8')
#f. readline()     #一次读取一行的内容,返回值是读取到的内容(str)
# buf = f.readline()

#f. neadLines() #按行读取,一次读取所有行,返回值是列表,列表中的每一项是一个字符串,即一行的内容

buf = f.readlines()
print(buf)
f.close()

⽂件访问模式

访 问 模 式说明
r以只读⽅式打开⽂件。⽂件的指针将会放在⽂ 件的开头。这是默认模式。
w打开⼀个⽂件只⽤于写⼊。如果该⽂件已存在 则将其覆盖。如果该⽂件不存在,创建新⽂ 件。
a打开⼀个⽂件⽤于追加。如果该⽂件已存在, ⽂件指针将会放在⽂件的结尾。也就是说,新 的内容将会被写⼊到已有内容之后。如果该⽂ 件不存在,创建新⽂件进⾏写⼊。
rb以⼆进制格式打开⼀个⽂件⽤于只读。⽂件指 针将会放在⽂件的开头。这是默认模式。
wb以⼆进制格式打开⼀个⽂件只⽤于写⼊。如果 该⽂件已存在则将其覆盖。如果该⽂件不存 在,创建新⽂件。
ab以⼆进制格式打开⼀个⽂件⽤于追加。如果该 ⽂件已存在,⽂件指针将会放在⽂件的结尾。 也就是说,新的内容将会被写⼊到已有内容之 后。如果该⽂件不存在,创建新⽂件进⾏写 ⼊。
r+打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂ 件的开头。
w+打开⼀个⽂件⽤于读写。如果该⽂件已存在则 将其覆盖。如果该⽂件不存在,创建新⽂件。
a+打开⼀个⽂件⽤于读写。如果该⽂件已存在, ⽂件指针将会放在⽂件的结尾。⽂件打开时会 是追加模式。如果该⽂件不存在,创建新⽂件 ⽤于读写。
rb+以⼆进制格式打开⼀个⽂件⽤于读写。⽂件指 针将会放在⽂件的开头。
wb+以⼆进制格式打开⼀个⽂件⽤于读写。如果该 ⽂件已存在则将其覆盖。如果该⽂件不存在, 创建新⽂件。
ab+以⼆进制格式打开⼀个⽂件⽤于追加。如果该 ⽂件已存在,⽂件指针将会放在⽂件的结尾。 如果该⽂件不存在,创建新⽂件⽤于读写。

案例

批量修改文件名

import os



def create_files():
    for i in range(10):
        file_name = 'test/file_' + str(i) + '.txt'
        print(file_name)
        f = open(file_name,'w')
        f.close()


def create_files_1():
    os.chdir( 'test' )
    for i in range(10,20):
        file_name = 'file_' +str(i) + '.txt'
        print(file_name)
        f = open(file_name,'w ')
        f.close()
    os.chdir( '../')# ../ 上一级目录



def modify_filename( ) :
    os.chdir( 'test ' )
    buf_list = os.listdir( )
    # print( buf_list)
    for file in buf_list:
        new_file = 'py43_'+ file
        os.rename(file, new_file)


    os.chdir( '../ ')


def modify_filename_1():
    os.chdir( 'test' )
    buf_list = os.listdir( )
    # print( buf_list)
    for file in buf_list:
        num = len( ' py43_')
        new_file = file[num : ]
        os.rename(file, new_file)



    os.chdir( ' ../ ')