python文件操作

166 阅读2分钟
# 文件
''' 
r 以只读方式打开文件,文件不存在,会报错
rb 以二进制格式打开文件
r+ 以读写模式打开文件
rb+ 以二进制格式打开文件,可读可写
w 打开文件支持写入,如果文件不存在,则创建该文件
wb 以二进制格式打开一个文件
w+ 以读写模式打开文件
wb+ 以二进制读写模式打开文件
a append,表示追加的模式打开文件,如果不存在,则创建该文件


'''

# 打开文件open(filename, mode)

# 如果不存在,则会创建文件
f = open("1.txt", 'w')
f.write("hello world")
f.close()

read

# read(bytes) 读取字节数,如果不传递,表示读取所有内容
'''
文件内容为
aaa
bbb
ccc
'''
f = open("1.txt", 'r')
value = f.read()
print(value)
'''
aaa
bbb
ccc
'''

# 如果此时再次读取,将无法读取到任何内容
value = f.read(4)
print(value)

# 此时要想读取文件,需要重新打开文件
f = open("1.txt", 'r')
value = f.read(5)
print(value)
'''
aaa
b
'''

readlines() 以行为单位将数据以列表的形式全部读取

'''
aaa
bbb
cc
'''
f = open("1.txt", 'r')
value = f.readlines()
print(value)  # ['aaa\n', 'bbb\n', 'ccc']

readline() 每次读取一行

'''
aaa
bbb
cc
'''
f = open("1.txt", 'r')
value = f.readline()
print(value)  # aa
value = f.readline()
print(value)  # bb
value = f.readline()
print(value)  # cc

seek(偏移量,起始位置) 起始位置0文件从头开始,1文件从当前位置开始,2文件末尾

'''
aaa
bbb
cc
'''
f = open("1.txt", 'r')
value = f.seek(2, 0)
print(value)
value = f.read()
print(value)
'''
a
bbb
ccc
'''
value = f.seek(1, 0)
value = f.read(1)
print(value)  # a
# 语法错误, 非二进制模式无法从非0的位置seek
# lue = f.seek(2, 1)

f = open("1.txt", "rb")
# 先读取1个字节
value = f.read(1)
print(value)  # b'a'
# 从当前位置跳过4个字符(2个a和换行符,windows系统换行符是\r\n两个字符)
f.seek(4, 1)
value = f.read(3)
print(value)
f.close()
# 文件操作
import os

f = open("1.txt", "w")
f.close()

if os.path.exists("2.txt"):
    os.remove("2.txt")

# 重命名文件或者文件夹
os.rename("1.txt", "2.txt")

# 文件不存在会报错
os.remove("2.txt")

# 创建文件夹
os.mkdir("files")

# 删除文件夹
os.rmdir("files")

# 获取当前文件夹
print(os.getcwd())

# 改变当前工作目录
os.chdir("../")

# 列表当前目录下的所有文件
value = os.listdir()
print(value)