Python文件读取操作

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’,我们需要有这个意识,当出现问题的时候,需要能想到可能会是这个问题,然后查找即可。


猜你喜欢

转载自blog.csdn.net/dhq15800562693/article/details/79851536