零基础入门学习Python 09
发布人:shili8
发布时间:2023-03-30 17:41
阅读次数:29
目录
1.文件打开
2.文件对象方法
3.文件内容处理
4.文件系统
OS模块
5.永久储存
pickle模块
1.文件打开
语法:file object = open(file_name [, access_mode][, buffering])
- file_name:要访问的文件路径及名称的字符串值。
- access_mode:决定了打开文件的模式:只读,写入,追加等。默认文件访问模式为只读 。
- buffering:
- 值取0,不会有寄存。
- 值取1,访问文件时会寄存行。
- 值取大于1的整数,表明了这就是的寄存区的缓冲大小。
- 值取负值,寄存区的缓冲大小则为系统默认。
f = open('E:\\test1.txt', 'w')
- 直接print(f),会输出一个文件对象:
<_io.TextIOWrapper name='D:\\test1.txt' mode='r' encoding='cp936'>
2.文件对象方法
-
list(f)
能将文件直接转化为列表 -
读取文件对象
for each_line in f:
print(each_line)
- 注意:
文件写入后,关闭文件才能保存写入内容f.write('i love ivcc')
f.close()
3.文件内容处理
def save_file(count, EM, YZ):
# 文件保存
if count != 0:
file_name_EM = '恶魔_' + str(count) + '.txt'
file_name_YZ = '勇者_' + str(count) + '.txt'
EM_file = open(file_name_EM, 'w', encoding='utf-8')
YZ_file = open(file_name_YZ, 'w', encoding='utf-8')
EM_file.writelines(EM)
YZ_file.writelines(YZ)
EM_file.close()
YZ_file.close()
def main_split_file():
EM = []
YZ = []
count = 0
f = open('.\\file内容分割test_file.txt', encoding='utf-8')
for each_line in f:
print(each_line)
if each_line[:6] != '======':
# 按照:分割字符串,保存到序列
if count != 0:
(role, line_spoken) = each_line.split(':', 1)
if role == '恶魔':
EM.append(line_spoken)
if role == '勇者':
YZ.append(line_spoken)
else:
save_file(count, EM, YZ)
EM = []
YZ = []
count += 1
save_file(count, EM, YZ)
f.close()
if __name__ == '__main__':
main_split_file()
4.文件系统
OS模块
访问文件系统的模块,用来处理文件和目录
OS: Operating System 操作系统
os基本方法
-
注:
- '.'表示当前目录
- '…'表示上一级目录
-
路径操作中常用到的一些定义
- os.curdir 指代当前目录(’.’)
- os.pardir 指代上一级目录(’…’)
- os.sep 输出操作系统特定的路径分隔符(Win下为’\’,Linux下为’/’)
- os.linesep 当前平台使用的行终止符(Win下为’\r\n’,Linux下为’\n’)
- os.name 指代当前使用的操作系统(包括:‘posix’, ‘nt’, ‘mac’, ‘os2’, ‘ce’, ‘java’)
os.path
5.永久储存
pickle模块
“Pickling”是将Python对象层次结构转换为二进制字节流的过程,
“unpickling”是反向操作
作用:
- 简化程序,将大量的数据打包(如: 城市字典)成二进制文件,需要使用时调用即可