python学习笔记(八)之文件操作

(一) 文件本身的操作

1.1 打开和关闭文件

①:open()函数 —— 打开或新建一个函数

  • 格式:file object = open(file_name [, access_mode][, buffering])
    file_name :文件路径
    access_mode:访问模式,默认文件访问模式为只读®。
    buffering:如果buffering的值被设为0,就不会有寄存;如果buffering的值取1,访问文件时会寄存行;如果将buffering的值设为大于1的整数,表明了这就是寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认。
  • 返回值:文件io 对象
  • 打开模式:
模式描述
r只读模式。文件不存在就报错,存在则准备读取文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
-------------
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

② close()函数 ——关闭文件

  • 格式:文件io对象.close()
  • 返回值:None

1.2 file对象的属性

属性描述
file.closed如果文件也被关闭,则返回ture,否则返回false
file.mode返回被打开文件的访问模式
file.name返回文件的名称
file.softspace如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

1.3 读写操作

① read()方法:——读取文件
格式:文件io对象.read()
返回值:整个文件的字符

格式:文件io对象.read(字符长度)
返回值:指定长度的字符

# 打开一个文件
f = open("foo.txt", "r+",encoding='utf-8')
str = f.read();
print("读取的字符串是 : ", str) 
# 关闭打开的文件
f.close()
## 输出内容为:
>>> 这是第一行
>>> 这是最后一行

② readline()方法:——读取一行文件
格式:文件io对象.readline()
返回值:一行内容的字符串

格式:文件io对象.readline(字符长度)
返回值:一行内容的字符串

字符长度<当前行内内容,则读取指定长度的字符串,并且下	
次再读取还是在这个一行中获取没有读取的内容。字符长度
>=当前行内容,直接读取当前行

f.readline() 会从文件中读取单独的一行。换行符为 ‘\n’。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。

# 打开一个文件
f = open("foo.txt", "r",encoding='utf-8')
str = f.readline()
print("读取的字符串是 : ", str) 
# 关闭打开的文件
f.close()
## 输出内容为:
>>> 这是第一行

③ readlines()方法: —— 将文件中的内容读取到序列中
格式:文件io对象.readlines()
返回值:列表

格式:文件io对象.readlines(字符长度)
返回值:读取指定长度的字节, 并且将这些字节按行分割
读取的行数由字符长度决定,如果字符长度读取了N行后,还有指定长度的字符没有读取,则直接读取下一行进来

# 打开一个文件
f = open("foo.txt", "r",encoding='utf-8')
str = f.readlines()
print("读取的字符串是 : ", str)
# 关闭打开的文件
f.close()
## 输出内容为:
>>> ['这是第一行\n','这是第二行\n']

④ write()方法:——写入文件
格式:文件io对象.write(字符串)
返回值:写入字符串的长度

# 打开一个文件
f = open("foo.txt", "w+",encoding='utf-8')
f.write("可以 ,你做的很好!\n 6666\n") 
# 关闭打开的文件
f.close()

注:write()方法不会在字符串的结尾添加换行符(’\n’)
⑤ writelines()方法:——将序列写入文件
格式:文件io对象.writelines(序列)
返回值:None
⑥ truncate()方法:——字符串截取操作
格式:文件io对象.truncate(字节长度)
返回值:截取的字节长度

1.4 文件定位操作

① tell()方法:——文件内的当前位置
即下次文件的读写操作开始发生的位置
格式:文件io对象.tell()

# 查找当前位置
position = f.tell();
print("当前文件位置 : ", position)

>>> 当前位置:28

② seek()方法:——改变当前文件的位置
格式:seek(offset,[from])
offset:要移动的字节数
from:指定开始移动字节的参考位置
from=0:将文件的开头作为移动字节的参考位置;from=1:使用当前的位置作为参考位置;from=2:该文件的末尾将作为参考位置。

# 把指针再次重新定位到文件开头
position = f.seek(0, 0);
str = f.read(10);
print("重新读取字符串 : ", str)

1.5 重命名文件

rename()方法:
格式:os.rename(current_file_name,new_file_name)

import os ##必须先导入模块,才能调用他的功能
# 重命名文件foo.txt到f.txt。
os.rename("foo.txt", "f.txt")

1.6 删除文件

remove()方法:
格式:os.remove(filename)

import os 
# 删除一个已经存在的文件f.txt。
os.remove("f.txt")

(二) 目录操作

① mkdir()方法:——在当前目录下创建新目录
格式:os.mkdir("newdir")

import os 
# 创建目录test
os.mkdir("test")

② getcwd()方法:——显示当前的工作目录
格式:os.getcwd()

import os 
# 给出当前的目录
print(os.getcwd())
>>> F:\Pycharm\WorkPlace

③ rmdir()方法:——删除目录
格式:os.rmdir('dirname')

import os
# 删除”test”目录
os.rmdir("test")

(三) 其他方法

方法描述
file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
file.fileno()返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
file.isatty()如果文件连接到一个终端设备返回 True,否则返回 False。
file.next()返回文件下一行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值