Python文件读写时的换行符与回车符

来源:互联网 发布:linux 文件后面带星号 编辑:程序博客网 时间:2024/04/30 03:35

1. 背景知识

ASCII码中的换行符与回车符:

换行符 10 LF '\n'

回车符 13 CR '\r'


在操作系统的历史中,有很多种方法来表示另起一行,但'\n'和'\r'是最常用的方式,目前主流操作系统的行结束符号如下所示:

操作系统字符组合UNIX & Mac OS X '\n'Mac(pre OS X) '\r'MS Windows '\r\n'

2. 测试程序(python2.7 + win7)

(1) test1: "w"方式写时的'\n'会在被系统自动替换为'\r\n'

# -*- coding: utf-8  -*-def main():    try:        fout = open("test1.txt", "w")    except IOError:        print "Error: open file failed."        return    for i in range(5):        line = str(i) + "\n"        fout.write(line)    fout.close()if __name__ == "__main__":    main()

测试结果:


(2) test2: "wb"方式写时的'\n'不会在被系统自动替换为'\r\n'

fout = open("test2.txt", "wb")

测试结果:


(3) test3: "r"方式读时,文件中的'\r\n'会被系统替换为'\n'

另外,python提到的通用新行格式(U修饰符),个人觉得是把"r"默认"rU"的,测试中两种方式读取结果一样。

# -*- coding: utf-8  -*-def main():    try:        fin = open("test1.txt", "r")    except IOError:        print "Error: open file failed."        return    for line in fin:        for i in range(len(line)):            print "\t%d" % ord(line[i]),        print ""    fin.close()if __name__ == "__main__":    main()

对于上述不同内容的两个文件输出为:


(4) test4: "rb"方式读时,文件中的'\r\n'不会被系统替换为'\n'


3. 结论

上述问题实际上自己在文件处理中遇到,文件换行中的回车符和换行符挺容易弄混,总结了一下,共大家查阅。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小朋友不吃饭装生病怎么办 带小朋友去苏梅岛生病了怎么办 练完舞蹈腿疼怎么办 过度运动后肌肉特别酸痛怎么办 锻炼把脚扭伤了怎么办 生完孩子变胖了怎么办 喝了啤酒肚子撑怎么办 小孩把口香糖吞进肚子怎么办 臂力器手柄坏了怎么办 30臂力棒掰不动怎么办 杯子盖子拧紧了打不开怎么办 深蹲以后腿软怎么办 小孩摔跤破皮了怎么办 手机qq账号密码忘了怎么办 刚满月宝宝喷奶怎么办 两个月的宝宝不爱吃奶怎么办 仓鼠走路画圈了怎么办 力气大但扳手腕不行怎么办 只睡了两个小时怎么办 微博账号被冻结了怎么办 微博一天多次解冻怎么办 肿瘤对化疗不敏感怎么办 2个月宝宝肺炎怎么办 小孩咳嗽2个月怎么办 两个月的小孩子气管炎怎么办? 小孩子两个月发烧38度怎么办 两个月的小孩子咳嗽怎么办 5个月宝宝吃奶少怎么办 26岁的1型糖尿病怎么办 睡前吃得太饱怎么办 胰岛素2小时>300怎么办 血清c肽测定高怎么办 体测蛋白质和骨骼肌偏高怎么办 半个月重了十斤怎么办 月经停了2个月怎么办 在练腹肌中腹痛怎么办 越练肌肉越肥怎么办 喘不过气来 心闷怎么办 被气得喘不过气怎么办 健身完头晕想吐怎么办 吃多了反胃头晕怎么办