Python 文件的操作

1.open()

函数原型  open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True,opener=None)

参数

(1)file

指定一个将要打开的文件的路径

(2)mode

r:读取(默认)。
w:写入。如果该文件已存在则截断清空文件(即覆盖)。
a:追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,则创建新文件写入。
x:排他性创建文件(如果文件已存在则打开失败)。
b:二进制格式。
t:文本模式(默认)。
+:更新文件(读取和写入)。

2.文件对象的方法

(1)f.write(text,/):将字符串写到文件对象中,并返回写入的字符数量(字符串的长度)

f = open("File.txt", "w")

print(f.write("Hello World."))
## 12


#File.txt
Hello World.

(2)f.writelines(lines,/):将一系列字符串写入到文件对象中(不会自动添加换行符)

f = open("File.txt", "w")

f.writelines(["I love Python.\n", "I love Cloud!"])
f.close()



#File.txt
I love Python.
I love Cloud!

(3)f.readable():判断该文件对象是否支持读取(如果返回值为False,则调用read()方法会导致OSError异常)

(4)f.writable():判断该文件对象是否支持写入(如果返回值为False,则调用write()方法会导致OSError异常)

f = open('File.txt', "r+")

print(f.readable())
## True
print(f.writable())
## True

文件可以通过迭代来实现读取:

f = open('File.txt', "r+")

for each in f:
    print(each)
    

## I love Python.
## 
## I love Cloud!

(5)f.tell():返回当前文件指针在文件对象中的位置

f = open('File.txt', "r+")

for each in f:
    print(each)

print(f.tell())

## I love Python.
##
## I love Cloud!
## 29

# 通过移动文件指针迭代读取文件,此时文件指针已到达文件末尾

(6)f.seek(offset,whence=0, /)修改文件指针的位置,从whence参数指定的位置(0代表文件的起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节,返回值是新的索引位置

f = open('File.txt', "r+")

for each in f:
    print(each)

print(f.tell())

## I love Python.
##
## I love Cloud!
## 29

print(f.seek(0))
## 0

(7)f.readline(size=-1,/):从文件对象中读取一行字符串(包括换行符),如果指定了size参数,则表示读取size个字符。

f = open('File.txt', "r+")

print(f.readline())

print(f.tell())

## I love Python.
##
## 16

 (8)f.read(size=-1,/):从文件对象中读取指定数量的字符(或者遇到EOF停止);当未指定该参数,或该参数为负值的时候,读取剩余的所有字符

f = open('File.txt', "r+")

print(f.read())

print(f.tell())

## I love Python.
## I love Cloud!
## 29

(9)f.flush():将文件对象中的缓存数据写入到文件中(不一定有效)(即不关闭文件的情况下将内容保存到文件中)

(10)f.truncate(pos=None, /):将文件对象截取到pos的位置,默认是截取到文件指针当前指定的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值