代码笔记:
'''
文件:长期存储在计算机上的一组数据。
文件的基础操作:
1.打开文件
2.读写文件
3.关闭文件
文件对象的方法:
1.open():打开文件
2.write():将指定内容写入文件
3.read(n):从文件中读取n个长度的内容,不指定n默认全读
4.close():关闭文件
文件对象的属性:
1.文件名.name:返回文件的文件名,可以包含文件的具体路径
2.文件名.mode:返回文件的访问模式。
3.文件名.closed:判断文件是否已经关闭,返回一组布尔值。
'''
f = open('test.txt') # 打开文件
print(f.name) # 返回文件名
print(f.mode) # 返回文件的访问模式
print(f.closed) # 返回文件是否关闭
print(f.read()) # 读取文件的数据
f.close() # 关闭文件
print(f.closed)
'''
readline():逐行读取文件数据,一次读取一行。
'''
f1 = open('test.txt')
while True:
text = f1.readline() # 一次只读取一行数据
if not text: # 读不到内容就退出循环
break
print(text)
f1.close()
'''
readlines():逐行读取文件所有数据。返回一个列表,每一行数据就是列表中的一个元素。
'''
f2 = open('test.txt')
print(f2.readlines())
print(type(f2.readlines()))
f2.close()
f3 = open('test.txt')
text_1 = f3.readlines()
for i in text_1: # for循环逐行读取readlines()中的数据
print(i)
f3.close()
'''
访问模式:
r:只读模式(默认模式),条件是文件必须存在。
w:只写模式,如果文件存在就会清空文件中的数据(重写编写内容),再写入新添加的内容(覆盖原来的内容);如果文件不存在,就会先创建文件再写入内容。
r+:可读写模式,文件不存在就回报错。
w+:先写再读模式,文件存在就重写编写文件,不存在就创建文件进行编写。
a:追加模式,文件存在就在原有的内容基础上添加新内容,不存在就创建文件进行编写。
'''
f4 = open('test01.txt', 'a')
for i in range(1, 11):
f4.write(f'GoodEvening\n')
f4.close()
'''
文件指针:开始读取数据的位置。
文件定位操作:tell()和seek()。
tell():显示文件内当前位置,即文件读取位置。
seek(offset,whence):移动文件读取指针到指定位置。
offset:偏移量,表示要移动的字节数。
whence:起始位置,表示要移动字节的参考位置;
默认为0,表示文件起始位置作为参考位置;
1代表当前位置作为参考位置;
2代表将文件结尾作为参考位置。
seek(0,0):将文件指针移动到文件开头位置。
'''
f5 = open('test01.txt', 'w+')
f5.write('HelloPython')
print(f'文件指针当前位置:{f5.tell()}')
f5.seek(0, 0) # 将文件指针移动到文件开头位置
print(f'文件指针当前位置:{f5.tell()}')
print(f5.read()) # 移动之后再读
f5.close()
'''
with open:代码执行完程序会自动调用.close()方法关闭文件。
'''
with open('test01.txt') as f6:
print(f6.read())
print(f6.closed)
print(f6.closed)
'''
编码格式:在Windows操作系统中,python解释器默认是GBK的编码格式(无法写入中文),可以使用encoding='utf-8'指定编码格式为utf-8。
'''
with open('test01.txt', 'w+', encoding='utf-8') as f7:
f7.write('人生苦短,我学Python!')
f7.seek(0, 0)
print(f7.read())
'''
目录常用操作(需要导入os模块):
os.rename(旧文件名,新文件名):给文件重命名
os.remove('文件路径'):删除文件
os.mkdir():创建文件夹
os.rmdir():删除文件夹
os.getcwd():获取当前文件夹
os.listdir():获取目录列表
'''
import os
with open('test03.txt', 'w+', encoding='utf-8') as f8:
f8.write('今天是2024年9月23日星期一')
f8.seek(0, 0)
text = f8.read()
print(text)
os.rename('test03.txt', '日期')
os.remove('日期')
os.mkdir('py11')
os.rmdir('py11')
运行结果:
test.txt
r
False
HelloWorld
HelloPython
GoodAfternoon
GoodEvening
hhh
True
HelloWorld
HelloPython
GoodAfternoon
GoodEvening
hhh
['HelloWorld\n', 'HelloPython\n', 'GoodAfternoon\n', 'GoodEvening\n', 'hhh']
<class 'list'>
HelloWorld
HelloPython
GoodAfternoon
GoodEvening
hhh
文件指针当前位置:11
文件指针当前位置:0
HelloPython
HelloPython
False
True
人生苦短,我学Python!
今天是2024年9月23日星期一