Python自学之乐-文件操作

Python的文件操作也看了不少资料,看是看懂了,但是没多久就会忘,所以还是要自己多实践,多理解,写个笔记加强下理解。

这里就以Python 3为例了,文件的操作直接使用with,比较简洁

1、读

现有文件1.txt,内容如下:

这是在测试文件的读操作
test read file
abcde
12345

代码如下:
with open("1.txt","r",encoding="utf-8") as f:

  print(f.read(10000),type(f.read()))

结果将文件的内容都读取出来了
如果这样写
with open("1.txt","r",encoding="utf-8") as f:
print(f.read(2))
出来的结果就是“这是”两个字符
如果写成
with open("1.txt","r",encoding="utf-8") as f:
print(f.read(2))
print(f.read(2))
出来的结果就是 “这是”
        “在测”

总结:1、read(size)方法是从文件的起始位置开始读取,读到哪,光标就在哪,如果再次读取,就从当前位置继续读取指定的字符;
2、不加size参数,默认读取整个文件;
3、read方法返回的类型是str

再来看看readline(size)方法:
with open("1.txt","r",encoding="utf-8") as f:
print(f.readline(),type(f.readline()))
结果:

这是在测试文件的读操作
<class 'str'>

继续

with open("1.txt","r",encoding="utf-8") as f:
print(f.readline(2))
print(f.readline(2))
print(f.readline(100))
结果:

这是
在测
试文件的读操作

再来

with open("1.txt","r",encoding="utf-8") as f:
print(f.readline(100))
print(f.readline(100))
print(f.readline(100))
结果:

这是在测试文件的读操作

test read file

abcde

总结:1、readline(size)方法是读取一行内容,不加size参数,默认是读取一行,如果你想读第二行,可以再写一个同样的不带参数的方法;

2、该方法返回的类型是str;

3、加size参数,是按照size的字节数来读取一行,如果size小于该行的长度,则只读取size字节的字符;如果size大于该行长度,那就整行读取,但是不会读取到下一行;而且一行没有读取完,你写多个同样的方法,都还是一直在读取这一行内容

继续readlines(size)方法:

with open("1.txt","r",encoding="utf-8") as f:
print(f.readlines(),type(f.readlines()))
结果是:
['这是在测试文件的读操作 ', 'test read file ', 'abcde ', '12345'] <class 'list'>
with open("1.txt","r",encoding="utf-8") as f:
print(f.readlines(2))
结果是:
['这是在测试文件的读操作 ']
with open("1.txt","r",encoding="utf-8") as f:
print(f.readlines(2))
print(f.readlines(2))
结果是:

['这是在测试文件的读操作 ']
['test read file ']

with open("1.txt","r",encoding="utf-8") as f:
print(f.readlines(11))
with open("1.txt","r",encoding="utf-8") as f:
print(f.readlines(12))
两个结果分别是:
['这是在测试文件的读操作 ']
['这是在测试文件的读操作 ', 'test read file ']
总结:1、readlines(size)方法是读取整个文件内容,不加size参数,就是整个文件都读取;加了size参数,如果size小于第一行的长度,那就只读取第一行内容,如果size大于或等于(包括换行符)第一行内容,则读取第二行内容
2、该方法返回的类型是list,每行的内容是列表中的一个元素,加上换行符



原文地址:https://www.cnblogs.com/clarkxhb/p/7309723.html