Discuss / Python / 关于本章节可能会有点小纠结的点

关于本章节可能会有点小纠结的点

Topic source

雨鸢梦

#1 Created at ... [Delete] [Delete and Lock User]

关于read(size)方法,实际写代码的时候,把size替换成你想要读取的字节数

try:
    f=open('E:\lianxi\python\IO1.txt','r')
    print(f.read(2)) #这个就是read(size)
    print(f.read())
finally:
    if f:
        f.close()

而且,当第一次调用完.read()方法后,再次调用时会从上次读取结束的地方开始读

我的txt文件里面的内容是

123
abc

经过上面的代码输出后,结果为

12
3
abc

第一次调用的是read(2)正好是前两个字节,也就是12,然后第二行的read输出接下来的内容

另外,如果你想测试廖老师的这行代码f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')

请先知道一件事情,win10的txt文件编码格式是utf-8,如果你用gbk反而会输出乱码

with open('E:\lianxi\python\gbk.txt','r',encoding='utf8') as t:
    print(t.read())

这样输出的结果是正常的文字

#别问我为什么要提一句,看我txt文件名是gbk就知道了

o0stanley0o

#2 Created at ... [Delete] [Delete and Lock User]

1. 如果想第二次read读取“全文”,那必须先让“指针”回到文章初始:

f.seek(0) #改变文件当前的位置到“开头”print(f.read())

2. 你用gbk反而出现乱码的原因是因为新建的txt默认是UTF-8,如果你新建的(或者手动修改的编码格式)就是GBK,那肯定不会乱码。


  • 1

Reply