找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4539|回复: 6

python 读取txt 文件, 用readlins() 和直接print结果不一样

6

主题

14

帖子

14

积分

贫民

积分
14
pythonpython 发表于 2016-11-13 14:05:31 | 显示全部楼层 |阅读模式
1. with open(f_name, newline = '', encoding='utf-8') as f:
        for line in f:
                print(line)

这种读出的信息是 10.00\u4e07


2. 但是我直接print('10.00\u4e07')

结果是10.00万

为什么第一次读取的信息没有直接把'\u4e07'变成'万', 直接print 就直接变成'万'

回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2016-11-13 20:23:02 | 显示全部楼层
open参数中加入'rb',
python3.4.4, win10
回复 支持 反对

使用道具 举报

6

主题

14

帖子

14

积分

贫民

积分
14
pythonpython  楼主| 发表于 2016-11-14 01:09:11 | 显示全部楼层
whydo1 发表于 2016-11-13 20:23
open参数中加入'rb',

我希望读的是txt内容, 不是二进制内容

不过我试了你说的,读出来是这样子
10.00\\u4e07

\u前面又多了一个\
回复 支持 反对

使用道具 举报

6

主题

14

帖子

14

积分

贫民

积分
14
pythonpython  楼主| 发表于 2016-11-14 05:20:37 | 显示全部楼层
现在打印出来多了一个\
10.00\\u4e07

我希望在这种情况下可以打印出来10.00万
1. with open(f_name, newline = '', encoding='utf-8') as f:
        for line in f:
                print(line)
回复 支持 反对

使用道具 举报

6

主题

14

帖子

14

积分

贫民

积分
14
pythonpython  楼主| 发表于 2016-11-14 05:30:32 | 显示全部楼层
现在打印出来多了一个\
10.00\\u4e07

我希望在这种情况下可以打印出来10.00万
1. with open(f_name, newline = '', encoding='utf-8') as f:
        for line in f:
                print(line)
回复 支持 反对

使用道具 举报

6

主题

14

帖子

14

积分

贫民

积分
14
pythonpython  楼主| 发表于 2016-11-14 12:05:08 | 显示全部楼层
with open(f_name, newline = '', encoding='unicode_escape') as f:

用unicode_escape  可以解决这个问题
回复 支持 反对

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2016-11-15 15:27:20 | 显示全部楼层
本人新手
为啥不直接用
  1. for line in open(f_name):
  2.     print line
复制代码

打印txt文件的内容呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表