Python文件操作

Published on 2018 - 01 - 23

文件的基本操作

  • 操作文件的套路
    • 1. 打开文件
    • 2.读写、文件
      • 读 将文件内容读入内存
      • 写 将内存内容写入文件
    • 关闭文件

操作文件的函数/方法

要记住一个函数,三个方法

序号 函数/方法 说明
01 open 打开文件,并且返回文件操作对象
02 read 将文件内容读取到内存
03 write 将指定内容写入文件
04 close 关闭文件

代码示例:

# 1.打开文件
file = open("README")

# 2.读取文件内容
text = file.read()

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

运行后可以输出README文件中的内容

文件指针

当文件打开一次后,会将文件指针放到文件最后。

代码示例:

file = open("README")

text = file.read()
print(text)
print(len(text))

print("-" * 50)

text = file.read()
print(text)
print(len(text))

file.close()

代码输出后可以看到只输出了一次README文件内容,因为文件指针到了文件最后,第二次阅读文件的时候,只能读到最后的空内容。

打开文件的方式

访问方式 说明
r 只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。如果文件不存在,抛出异常
w 只写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件
a 追加方式打开文件。如果该文件以存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入
r+ 读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,抛出异常
w+ 读写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件
a+ 读写方式打开文件。如果该文件以存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入
提示:频繁的移动文件指针,会影响文件的读写效率,开饭中更多的时候会以只读、只写的方式来操作文件

代码示例:

file = open("README", "a")
file.write("123 hello")
file.close

执行代码后会在README文件末尾追加上 123 hello

按行读取文件内容

  • read方法默认会把文件的所有内容一次性读取到内存。
  • 如果文件太大,对内存的占用会非常严重

readline方法

  • readline方法可以一次读取一行内容
  • 方法执行后,会把文件指针移动到下一行,准备再次读取。

读取大文件的正确方法

file = open("README")

# 使用while True来进行无限循环,
while True:

    # 使用readline来输出每一行
    text = file.readline()

    # print结尾加上end以防止再多出一个空格
    print("%s" % text, end="")
    if not text:
        break

# 关闭文件
file.close()

案例:文件复制

# 打开文件
file_read = open("README")
file_write = open("README_cp", "w")

# while True:
#     """
#     使用readline的方式(针对大文件)
#     """
#     text = file_read.readline()
#
#     if not text:
#         break
#
#     file_write.write(text)

# 使用读写方式复制文件
text = file_read.read()
file_write.write(text)

# 关闭文件
file_read.close()
file_write.close()