初识python 文件读取 保存

上一章最后一题的答案:
infors.sort(key=lambda x:x['age'])
print(infors)
--->[{'name': 'laowang', 'age': 23}, {'name': 'ab', 'age': 34}, {'name': 'bf', 'age': 43}]

python基础(三):

文件打开和关闭:

打开:

能够用open函数打开一个已经存在的文件或者建立一个新的文件,python

 open('文件名','访问模式)函数

f = open('test.txt','w')post

 

访问模式 说明
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。若是该文件已存在则将其覆盖。若是该文件不存在,建立新文件。
a 打开一个文件用于追加。若是该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容以后。若是该文件不存在,建立新文件进行写入。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb 以二进制格式打开一个文件只用于写入。若是该文件已存在则将其覆盖。若是该文件不存在,建立新文件。
ab 以二进制格式打开一个文件用于追加。若是该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容以后。若是该文件不存在,建立新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。若是该文件已存在则将其覆盖。若是该文件不存在,建立新文件。
a+ 打开一个文件用于读写。若是该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。若是该文件不存在,建立新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+ 以二进制格式打开一个文件用于读写。若是该文件已存在则将其覆盖。若是该文件不存在,建立新文件。
ab+ 以二进制格式打开一个文件用于追加。若是该文件已存在,文件指针将会放在文件的结尾。若是该文件不存在,建立新文件用于读写。

 

关闭:

close()spa

    # 新建一个文件,文件名为:test.txt
    f = open('test.txt', 'w')

    # 关闭这个文件
    f.close()

 

 

文件读写:

读(read):

我有一个 1.text 的文档,文档里面的内容是指针

'''Python just let be code

I fell in love with you watching Casablanca '''blog

接下来我要对这个文档进行操做rem

使用read(num)能够从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),若是没有传入num,那么就表示读取文件中全部的数据文档

 

 
 
f = open('1.txt','r')

Text = f.read(7) #长度为7
print(Text)
f.close()
--->Python

若是使用读了屡次,那么后面读取的数据是从上次读完后的位置开始的f = open('1.txt','r')get

 Text = f.read(7) print(Text) postion = f.tell() #tell()能够查看当前阅读到的位置 print(postion) Text_2 = f.read(4) postion_2 = f.tell() print(Text_2) print(postion_2) f.close()

--->

  Python
  7
  just
  11

 

 

读(readlines)

readlines能够按照行的方式把整个文件中的内容进行一次性读取,而且返回的是一个列表,其中每一行的数据为一个元素

Text = f.readlines()
for i in Text:
    print(i)
f.close()
--->

Python just let be

I fell in love with you watching Casablanca

 

 

写(write)

使用write()能够完成向文件写入数据 

f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()

 

 

文件定位:

获取当前读写的位置:

在读写文件的过程当中,若是想知道当前的位置,能够使用tell()来获取

Text = f.read(7)
print(Text)
postion = f.tell() #tell()能够查看当前阅读到的位置
print(postion)

Text_2 = f.read(4)
postion_2 = f.tell()
print(Text_2)
print(postion_2)

f.close()

--->
  Python 
  7
  just
  11

定位到某个位置:

若是在读写文件的过程当中,须要从另一个位置进行操做的话,能够使用seek()

seek(offset, from)有2个参数

  • offset:偏移量
  • from:方向
    • 0:表示文件开头
    • 1:表示当前位置
    • 2:表示文件末尾
 1 f = open('1.txt','rb')
 2 
 3 str = f.read(6)
 4 postion = f.tell()
 5 print(str)
 6 print(postion)
 7 
 8 f.seek(-10,2) #from =2
 9 str_2 = f.read()
10 print(str_2)
11 f.close()

--->

b'Python'
6
b'Casablanca'

 

文件和文件夹的相关操做:

重命名:

os模块中的rename()能够完成对文件的重命名操做

rename(须要修改的文件名, 新的文件名)

import os
os.rename('1.txt','1_1.txt')

删除:

import os
os.remove('1_1.txt')

 

文件夹操做:

建立文件夹:

os.mkdir('test')

获取当前目录:

os.getcwd()

改变默认目录:

os.chdir('../')

获取目录列表:

os.listdir('../')

删除文件夹:

os.rmdir('test')