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,每行的内容是列表中的一个元素,加上换行符