Python有下列内置文件操作:

• open() 打开或者创建一个文件 格式:open('文件路径','打开模式') 打开模式:r w a 等模式 具体请参考手册
• close() 关闭文件
• read() 读取文件
• readline() 读取一行文件
• readlines() 将文件中的内容读取到序列当中。
• write() 写入文件
• writelines() 将序列写入文件中

下面通过一些实例来讲解:

1、简单的文件信息读取

# 打开文件
f = open("./a.txt","r") 
# 读取文件内容并输出
content = f.read(5)
print(content)
content = f.read(5)
print(content)
content = f.read()
print(content)
# 关闭文件
f.close()

2、readline() 读取全文(重要掌握)

f= open("./a.txt","r")
content = f.readline()
while len(content)>0:
    print(content,end="")
    content = f.readline()
f.close()

3、readlines() 一次性读取所有行

f = open("./a.txt","r")
flist = f.readlines()
for line in flist:
    print(line,end="")
f.close()

使用 readlines() 读取得到的是一个列表,输出时要循环输出。

4、文件写入操作

f = open("./b.txt","w")
f.write("Hello Python!\n")
f.write("Hello MysQL!\n")

a = ["Hello World!\n","Hello HTML!\n","Hello PHP!\n"]
f.writelines(a)  #一次性写入多行

f.close()

<h3>文件相关小项目实战</h3>

                   ————————自定义文件复制函数

(1)文本文件的复制

def mycopy(file1,file2):
    '''
    这是一个文本复制函数
    '''
    f1 = open(file1,"r")
    f2 = open(file2,"w")
    content = f1.readline()
    while len(content)>0:
        f2.write(content)
        content = f1.readline()
    f1.close()
    f2.close()

'''
f = open("./a.txt","w")
a = ["Hello World!\n","Hello HTML!\n","Hello PHP!\n"]
f.writelines(a)
'''
mycopy("./a.txt","./a_copy.txt")

这里需要主要一个问题。要复制的文件一定要存在,如果是像我上面的程序去掉
'''
f = open("./a.txt","w")
a = ["Hello World!n","Hello HTML!n","Hello PHP!n"]
f.writelines(a)
'''
这一段的注释符号,复制后的文件是空的。

(2)二进制文件(图片、音频、视频等)的复制

def mycopy(file1,file2):
    '''
    这是一个文本复制函数
    '''
    f1 = open(file1,"rb")
    f2 = open(file2,"wb")
    content = f1.readline()
    while len(content)>0:
        f2.write(content)
        content = f1.readline()
    f1.close()
    f2.close()

mycopy("./k.png","./k_copy.png")

与文本文件的复制不同的是,二进制文件在打开时要使用二进制的方式。

f1 = open(file1,"rb")
f2 = open(file2,"wb")

要用 wb 和 rb 。

Last modification:March 18th, 2018 at 03:20 pm
If you think my article is useful to you, please feel free to appreciate