打开文件,打开模式和执行操作
‘r’:以只读方式打开文件(默认)
‘w’:以写入的方式打开文件,会覆盖已存在的文件
‘x’:如果文件已存在,使用此模式打开将引发异常
‘a’:以写入模式打开,如果文件存在,则在末尾追加写入
‘b’:以二进制模式打开文件
‘t’:以文本模式打开(默认)
‘+’:可读写模式(可添加到其他模式中使用)
‘U’:通用换行符支持
文件对象方法
f.close():关闭文件
f.read(size=-1):从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回
f.readline():以写入模式打开,如果文件存在,则在末尾追加写入
f.write(str):将字符串str写入文件
f.writelines(seq):向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
f.seek(offset,from):在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
f.tell()返回当前在文件中的位置
f=open('D:\python学习\\record.txt')
print(f.read())
f.seek(0,0)#指针归位
print(f.read(5))#读取了前五个字符
print(f.tell())#返回文件指针,返回10,因为一个中文占两个字节
print(f.seek(2,0))#修改文件指针
f.seek(0,0)
print(f.readline())#读一行
f.seek(0,0)
print(list(f))#把文件转换为列表
将文件转换为列表后输出效率太低了,所以,用另一种办法。我们可以直接用文件进行迭代:
f=open('D:\python学习\\record.txt')
for each_line in f:
print(each_line)
如果要在文件里写入东西,那要确保在之前打开文件的open里要写入’w’或’a’。
f=open('D:\python学习\\record.txt','w')
print(f.write('遇见你是我最幸运的事'))#写入的内容覆盖了原来的内容,返回的是你写入了几个字符
f=open('D:\python学习\\record.txt','a')
f.write('我想一直一直和你在一起')
Python是跨平台的语言,相同的源代码在不同的操作系统不需要修改就可以同样实现。因此Python的作者就倒腾了OS模块这么一个玩意出来,有了OS模块,我们不需要关心什么操作系统下使用什么模块,OS模块会帮你选择正确的模块并调用
OS模块中关于文件/目录常用的函数使用方法
getcwd():返回当前工作目录
chdir(path):改变工作目录
listdir(path=’.’):列举指定目录中的文件名(’.'表示当前目录,‘…'表示上一级目录)
mkdir(path):创建单层目录,如该目录已存在抛出异常
makedirs(path):递归创建多层目录,如该目录已存在抛出异常,注意:'E:\a\b’和’E:\a\c’并不会冲突
remove(path):删除文件
rmdir(path):删除单层目录,如该目录非空则抛出异常
removedirs(path):递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
rename(old,new):将文件old重命名为new
system(command):运行系统的shell命令