Python3、Mac终端
txt.txt内的文本内容:
f.read()
read()函数会随着读取的进行,光标依次向后移动
mac终端中的代码
>>> f=open('/Users/haiqing.dong/Desktop/txt.txt','r')
>>> print(f.read())
shanghai
上海
>>> f.seek(0)
0
>>> f.read(1)
's'
>>> f.read(1)
'h'
>>> f.read(2)
'an'
readline() #一行一行地读,每读一行,光标向后移动一行,类似read()函数。
readlines() #一次性全部读完
mac终端中的代码:
>>> f.seek(0)
0
>>> f.readline()
'shanghai\n'
>>> f.readline()
'上海\n'
>>>
>>>
>>> f.readline()
''
>>>
>>>
>>> f.seek(0)
0
>>>
>>>
>>>
>>> f.readlines()
['shanghai\n', '上海\n']
>>> f.readlines()
[]
>>>
>>> type(f.readlines())
<class 'list'> #此处是一个列表list
>>>
>>> f.seek(0)
0
>>> f.readline()
'shanghai\n'
>>> type(f.readline())
<class 'str'>。 #此处是字符串str
>>>
注意,当readline()的()中添加数字之后,read()和readline()的用法将会一样,如下
>>> f.seek(0)
0
>>> f.readline(1)
's'
>>> f.readline(2)
'ha'
>>> f.readline(3)
'ngh'
>>>
>>>
>>> f.seek(0)
0
>>> f.read(0)
''
>>> f.read(1)
's'
>>> f.read(2)
'ha'
>>> f.read(3)
'ngh'
>>>
遍历一个文件:
>>> f.seek(0)
0
>>> for line in f.readlines():
... print(type(line))
... print(line)
...
<class 'str'>
shanghai
<class 'str'>
上海
>>>
注意,也可以直接用:
for line in f:
示例如下:
>>>
>>> f.seek(0)
0
>>> for line in f:
... print(type(line))
... print(line)
...
<class 'str'>
shanghai
<class 'str'>
上海
>>>
注意:txt存储时候的编码问题 ‘gbk’、‘utf8’,windows下是要严格区分的
Mac下好像都能正常读取:
>>> f=open('/Users/haiqing.dong/Desktop/txt.txt','r',encoding='utf8')
>>> type(f)
<class '_io.TextIOWrapper'>
>>> f.read(1)
's'
>>>
>>> f=open('/Users/haiqing.dong/Desktop/txt.txt','r')
>>> f=open('/Users/haiqing.dong/Desktop/txt.txt','r',encoding='gbk')
>>> print(f)
<_io.TextIOWrapper name='/Users/haiqing.dong/Desktop/txt.txt' mode='r' encoding='gbk'>
>>> f=open('/Users/haiqing.dong/Desktop/txt.txt','r',encoding='gbk')
>>> f.read
<built-in method read of _io.TextIOWrapper object at 0x104f2f8b8>
>>> f.read(1)
's'
>>>
⚠️txt存储时候的编码问题 ‘gbk’、‘utf8’,我们需要有这个意识,当出现问题的时候,需要能想到可能会是这个问题,然后查找即可。