[TOC]

python的文件操作

python中内置了文件(File)对象。通过open()方法创建。

file文件的读写操作

  • 创建和打开文件、关闭文件
1
2
3
4
5
6
7
8
9
file = open(filename[,mode[,buffering]])
# 参数
# filename:要创建的文件名,或路径
# mode:文件的打开方式,取值见下表
# buffering:用于指定读写文件的缓冲模式
# 值为0表示不缓存,值为1表示缓存
# 大于1表示缓冲区的大小
file.close()
# 使用close()方法时,会先刷新缓冲区中还没有写入的信息,然后再关闭文件,这样可以将没有写入文件的内容写入文件中

写入文件后,一定要调用close()方法关闭文件,否则写入的内容不会保存到文件中。这是因为在写入文件内容时,操作系统不会立刻把数据写入磁盘,而是先缓存起来,只有调用close()方法时,操作系统才会保证把没有写入的数据全部写入磁盘。

Image [5]

  • 用with语句打开文件、写入
1
2
with open('path','w') as f:
  f.write(str)
  • 读取文件
1
2
3
4
5
6
7
8
9
10
# ---读取指定字符---
file.read([size])
# size: 用于指定要读取的字符个数,省略则全部读取

# ---读取一行---
file.readline()

# ---读取所有行---
file.readlines()
# 返回每行的字符串列表
  • 文件指针

文件指针能指定文件读写的起始位置

python在关闭文件时,不会保存文件指针的位置,也就是说,每次打开时,文件指针都是0。而java、C和C#则会自动保存。

1
2
3
4
5
6
7
8
9
10
file.seek(offset[,whence])
# offset: 用于指定移动的字符个数
#--offset的值是按一个汉字占两个字符、英文和数字占一个字符计算的--

# whence: 指定移动的起始位置
#--whence值为0表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算,默认为0--、

file.seek(0) # 定位到开头
file.seek(0, 2) # 定位到结尾
file.read() # 指向到读取后的位置

file文件的操作


  • 复制、移动
1
2
3
4
# 需要使用shutil模块
shutil.copyfile(src, dst)

shutil.move(src, dst)
  • 重命名、删除、获取基本信息
1
2
3
4
5
6
7
# 需要用到os模块
os.rename(src, dst)

os.remove(path)

os.stat(path)
# 返回属性见下表

img