python笔记(三)---文件读写、修改文件内容、处理json、函数

文件读写(一)
 1 #r  只读,打开文件不存在的话,会报错
 2 #w  只写,会清空原来文件的内容
 3 #a  追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件
 4 print(f.read()) #获取到文件里面所有的内容
 5 print(f.readlines()) #获取到文件里面的所有的内容,存放到一个list里
 6 f=open('users.txt')
 7 print(f.readline())   #读取一行
 8 print(f.readline())
 9 
10 #
11 a=['username1,123456\n','username2,123456\n']
12 # for i in a:
13 #     f.write(i+'\n')
14 print(f.writelines(a))   #用writelines不需要写循环,直接把list放到文件中
15 
16 u='abc,123'
17 print(f.writelines(u))  #如果是字符串要放到文件中,最好不用要writelines,因为他要一个一个循环取;最到用write
18 
19 #如果要把list多个元素写到文件里,就用writelines,如果是字符串要写到文件中就用write

文件读写(二)

#r+ 读写模式   打开不存在的文件会报错
#w+  写读模式
#a+  追加读写
# rb  二进制的读
# wb 二进制的写
#ab  
f=open('users.txt','w+',encoding='utf-8')
print(f.read)  #w+可以读到内容不报错,但是把文件内容清空了

#a+ 
f=open('users.txt','a+',encoding='utf-8')
f.seek(0)
print(f.read)
f.write('a+模式')

#如果是二进制文件,或是图片需要用rb,wb
res= open('333.jpg','wb')
print(res)

 二、修改文件内容:

 1 #1、简单、粗暴直接的
 2 f=open(r'c:\users\nhy\Desktop\file.txt',encoding='utf-8')   #如果打开文件是绝对路径,如果路径中有\n就会转义,前面加r就不会转义
 3 res=f.read().replace('一点','二点')
 4 f.close()
 5 f=open(r'c:\users\nhy\Desktop\file.txt',mode='w',encoding='utf-8')
 6 f.write(res)
 7 f.flush()
 8 f.close()
 9 
10 #第二种修改的方法
11 f=open('file.txt','a+',encoding='utf-8')
12 f.seek(0)
13 res=f.read().replace('','NI')
14 f.truncate() #把原来的内容删掉
15 f.write(res)
16 f.close()
17 
18 #第三种:如果是小文件用上面两种方法还可以,如果是大文件用下面的文件
19 import os
20 f=open('file.txt','a+',encoding='utf-8')
21 f2=open('file.txt.bak','w',encoding='utf-8')
22 for line in f:
23     new_line=line.replace('NI','')
24     f2.write(new_line)
25 f.close()
26 f2.close()
27 os.remove('file.txt')  #删除file.txt文件
28 os.rename('file.txt.bak','file.txt')  #把file.txt.bak文件名称替换成file.txt
29 
30 #第四种实现方式
31 #如果不想close关闭文件,可以直接用with操作
32 with open('file.txt',encoding='utf-8') as f,open('file.txt.bak',encoding='utf-8') as f2:
33     for line in f :
34         new_line=line.replace('两点','一点')
35         f2.write(new_line)
36 os.remove('file.txt')
37 os.rename('file.txt.bak','file.txt')

三、处理json:

 1 #json通用的数据类型,所有的语言都认 2 #key--vules形式

 3 #json串是字符串
 4 
 5 s='''
 6 {
 7         "error_code": 0,
 8         "stu_info": [
 9                 {
10                         "id": 309,
11                         "name": "小白",
12                         "sex": "男",
13                         "age": 28,
14                         "addr": "河南省济源市北海大道32号",
15                         "grade": "天蝎座",
16                         "phone": "18512572946",
17                         "gold": 100
18                 },
19                 {
20                         "id": 310,
21                         "name": "小白",
22                         "sex": "男",
23                         "age": 28,
24                         "addr": "河南省济源市北海大道32号",
25                         "grade": "天蝎座",
26                         "phone": "18516572946",
27                         "gold": 100
28                 }
29         ]
30 }
31 '''
32 
33 import json
34 res=json.loads(s) #json串(字符串),转成字典
35 print(res)
36 print(res.keys())  #打印
37 print(type(res))   #打印类型key
38 #dumps 把字典转成json,字符串
39 stus={'xiaojun':123456,'xiaohei':123456,'xiaowang':123456,'海龙':123456}
40 res2=json.dumps(stus,indent=4,ensure_ascii=False) #indent控制缩进    ensure_accii=False打印控制显示中文
41 print(res2)
42 print(type(res2))
43 with open('stus.txt','w',encoding='utf-8') as f:
44     f.write(res2)
45 
46 with open('stus.txt','w',encoding='utf-8') as f:
47     f.write(res2)
48 
49 # json.loads 和json.load的区别
50 f=open('stus.json',encoding='utf-8')
51 content=f.read()
52 user_dic=json.loads(content)  #json.loads读的是字符串,必须把文件先读出来
53 print(user_dic)
54 
55 f=open('stus.json',encoding='utf-8')
56 user_dic=json.load(f)   #json.load直接传一个文件对像就可以,自动读出来
57 print(user_dic)
58 
59 #dump()和dumps()的区别
60 stus={'xiaojun':123456,'xiaohei':123456,'xiaowang':123456,'海龙':123456}
61 f=open('stus2.json','w',encoding='utf-8')  
62 json.dump(stus,f,indent=4,ensure_ascii=False)  #把stus写入f
63 f.close
64 #如果你要把字典写到文件里面的用dump比较方便
65 #如果要把字典存到数据库里面就只能用dumps

 




0 #r 只读,打开文件不存在的话,会报错
#w 只写,会清空原来文件的内容 11 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件 12 f=open('users.txt','a+') 13 f.seek(0) #t移动文件指针 14 print(f.read()) #获取到文件里面所有的内容
15 print(f.readlines()) #获取到文件里面的所有的内容
16 print(f.readline()) #读取一行
17 print(f.readline())
18 #写
posted on 2018-09-06 00:12  jingshuhui  阅读(893)  评论(0编辑  收藏  举报