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.文件内容处理
1. def save_file(count, EM, YZ): 2. # 文件保存 3. if count != 0: 4. file_name_EM = '恶魔_' + str(count) + '.txt' 5. file_name_YZ = '勇者_' + str(count) + '.txt' 6. EM_file = open(file_name_EM, 'w', encoding='utf-8') 7. YZ_file = open(file_name_YZ, 'w', encoding='utf-8') 8. 9. EM_file.writelines(EM) 10. YZ_file.writelines(YZ) 11. 12. EM_file.close() 13. YZ_file.close() 14. 15. 16. def main_split_file(): 17. EM = [] 18. YZ = [] 19. count = 0 20. 21. f = open('.\\file内容分割test_file.txt', encoding='utf-8') 22. for each_line in f: 23. print(each_line) 24. if each_line[:6] != '======': 25. # 按照:分割字符串,保存到序列 26. if count != 0: 27. (role, line_spoken) = each_line.split(':', 1) 28. if role == '恶魔': 29. EM.append(line_spoken) 30. if role == '勇者': 31. YZ.append(line_spoken) 32. else: 33. save_file(count, EM, YZ) 34. EM = [] 35. YZ = [] 36. count += 1 37. save_file(count, EM, YZ) 38. f.close() 39. 40. 41. if __name__ == '__main__': 42. 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”是反向操作
作用:
- 简化程序,将大量的数据打包(如: 城市字典)成二进制文件,需要使用时调用即可