Python Windows下文件读写与二进制读写的区别
2015-07-15 17:56
591 查看
从我遇到的实际场景来看,区别主要在于对换行符的处理上。
概念:
”\n” – 换行符(LF) – 指向新的一行
“\r” – 回车符(CR) – 指到一行的开头
不同系统下的换行符有区别:
Window 下为 “\r\n”;
Unix 下为 “\n”;
Mac 下为 “\r”.
规则:
在 Windows 下用文件模式读写文件时 “\n” 会被转换成 “\r\n” 处理;
在 Windows 下用二进制模式读写文件时 “\r\n” 依然作 “\r\n” 处理,”\n” 依然作 “\n”处理。
验证代码:
输入:
输出r0 (“rb”, “wb”):
- 分析:
- - 输入:”\r\n” 保持不变
- - 输出:”\r\n” 保持不变
- - 故输出与输入保持一致
输出r1 (“rb”, “w”):
- 分析:
- - 输入:”\r\n” 保持不变
- - 输出:”\r\n” 中的 “\n” 转换成 “\r\n”
- - 故输入的 “\r\n” 全部变为 “\r\r\n”
输出r2 (“r”, “wb”):
- 分析:
- - 输入:”\r\n” 转换为 “\n”
- - 输出:”\n” 保持不变
- - 故输入的 “\r\n” 全部变为 “\n”
输出r3 (“r”, “w”):
- 分析:
- - 输入:”\r\n” 转换为 “\n”
- - 输出:又将”n” 转换回 “\r\n”
- - 故输出与输入保持一致
概念:
”\n” – 换行符(LF) – 指向新的一行
“\r” – 回车符(CR) – 指到一行的开头
不同系统下的换行符有区别:
Window 下为 “\r\n”;
Unix 下为 “\n”;
Mac 下为 “\r”.
规则:
在 Windows 下用文件模式读写文件时 “\n” 会被转换成 “\r\n” 处理;
在 Windows 下用二进制模式读写文件时 “\r\n” 依然作 “\r\n” 处理,”\n” 依然作 “\n”处理。
验证代码:
# -*- coding: utf-8 -*- """ Created on Thu Jun 18 18:00:55 2015 @author: Lancer """ infile_address = "E:/Program Files/Anaconda/workspace/Test/he.txt" module = [('rb', 'wb'), ('rb', 'w'), ('r', 'wb'), ('r', 'w')] for i in range(4): this_module = module[i] read_module = this_module[0] write_module = this_module[1] outfile_address = "E:/Program Files/Anaconda/workspace/Test/r" + str(i) infile = open(infile_address, read_module) outfile = open(outfile_address, write_module) while True: line = infile.readline() if not line: break outfile.write(line) infile.close() outfile.close()
输入:
输出r0 (“rb”, “wb”):
- 分析:
- - 输入:”\r\n” 保持不变
- - 输出:”\r\n” 保持不变
- - 故输出与输入保持一致
输出r1 (“rb”, “w”):
- 分析:
- - 输入:”\r\n” 保持不变
- - 输出:”\r\n” 中的 “\n” 转换成 “\r\n”
- - 故输入的 “\r\n” 全部变为 “\r\r\n”
输出r2 (“r”, “wb”):
- 分析:
- - 输入:”\r\n” 转换为 “\n”
- - 输出:”\n” 保持不变
- - 故输入的 “\r\n” 全部变为 “\n”
输出r3 (“r”, “w”):
- 分析:
- - 输入:”\r\n” 转换为 “\n”
- - 输出:又将”n” 转换回 “\r\n”
- - 故输出与输入保持一致
相关文章推荐
- python中的构造函数
- Python.Scrapy.11-scrapy-source-code-analysis-part-1
- Python-文件修改器
- 【Python】 Flask 缘分匹配练手项目
- Python实现将目录中TXT合并成一个大TXT文件的方法
- 用 Python 管理 Android 中 strings.xml 的字符翻译
- Python 爬虫学习
- Python映射类型、集合类型
- 自己做的一个python分页的自定义方法
- python基础教程总结7——异常
- Python中'__main__'模块的作用
- Python学习笔记4_字符串
- python md5加密中文
- Python脚本刷点击率。
- 5-python学习——条件语句
- Numpy 入门
- 原创翻译-值得关注的10个python语言博客
- Python进阶三:面向对象基础
- Python序列:字符串、元组、列表
- Python的Django框架中if标签的相关使用