文件操作
1,使用文件的目的:
就是把一些数据存储存放起来,比如程序日志文件或者数据
2,在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件
open(文件名,访问模式)
访问模式 说明
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存 在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,
新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。
文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
(1)写
f=open("E:\\a.txt",'w') # w 代表只写的方式,打开一个文件,叫a.txt。路径如下
f.write('北京欢迎您')
f.close()
#绝对路径 明确位置
#相对路径 相对位置 #运用相对路径打开file\open\
read 调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,会导致程序卡死,
所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字符的内容
readline每次读取一行,并且自带换行功能 每一行末尾会读到\n
Readlines,一次性以行的形式读取文件的所有内容并返回一个list,里面包含有\n,需要去遍历读出来
例:
如果a.txt文件内容为:
1,3,5,6,7
20,21,22
(2)读:
f=open('a.txt','r')
content=f.read()
print(content) #1,3,5,6,7 #str
#20,21,22
print(type(content))
f.close()
content=f.read(6)#按多少字读 1,3,5, #str类型
content=f.readline() #读一行 数字按多少字节读 字符串:1,3,5,6,7 #str类型
content=f.readlines() #读全行 [‘1,3,5,6,7\n’, ‘20,21,22’] 列表,单行为字符串 #带有两个str的list类型
f=open('a.txt','w' )
f.write('北京')
f.write('\n')
f.write('南京')
f.close()
文件中写入:
北京
南京
(3)获取指针位置 f.tell()
f=open('a.txt','r')
print(f.tell())
x=f.read(4)
print(x)
print(f.tell())
f.close() # 字节 不要忽略\n
重设指针文字
f=open('a.txt','r')
x=f.read(4)
print(x)
f.seek(2,0) #第一个参数代表的是偏移的字节数,第二个参数从哪个地方偏移 0代表文件头,1代表当前
x=f.read(4)
print(x)
f.close()
(3)重命名
import os #操作系统
os.rename('a.txt,'b.txt')
(4)移除
import os
os.remove('c.txt')
(5)目录操作
import os
os.mkdir('abc',0x777) #第一个7 代表自己可读写,
# 第二个7代表同组的可读写,第三个7代表全部人可读写
(6)获取当前文件所在目录
import os
p=os.getcwd()
print(p)
(7)删除文件夹
import os
os.rmdir('abc')
(8)判断是否存在?
import os
b=os.path.exists('a.txt')
print(b)
b=os.path.exists('a')
print(b)
输出:
True
False
(9)创建多级目录
import os
os.makedirs('a//b//c')
(10)文件打开方式2
with open("a.txt","w") as f: #自动关文件
x=f.write('12342')
print(x) #输出为指针的位置5,