使用文件用with的好处
1.会在运行完后自动关闭文件
2.很简单
打开文件并读取
with open('c.xls','r') as t1:
content = t1.read()
print(content)
with open('c.xls','r') as t1:
content = t1.read()
con = t1.readlines()
print(content)
print(con)
open参数的解释:
+:表示拥有读和写功能
r表示只读,如果变成r+,表示可读可写,不能创建文件
w表示可写,w+表示可读可写,文件不存在则创建,存在则覆盖原先内容,原则就是创建一个新文件
a可写,a+表示可读可写,文件不存在则创建,追加内容在原本数据的末尾
补充,因为readlines是一个列表,而每行都是列表的一个元素,这一行,可能非常长,比如下面这图,实际上是列表下标为0的值 ,需要用eval进行转化,才能成为一个“正常”的列表
-------------------------------------------
使用json文件读取和写入数据
import json
try:
with open('wxh.json', 'r') as filename:
f = json.load(filename) #读取json文件
print ('your like number is :%s' % f)
except:
dig = raw_input("输入你喜欢的数字:")
with open('wxh.json','w') as filename:
json.dump(dig,filename) #数据写入json文件
------------------------------------------------------------------------------------------------
如何进行逐行读取并在每次读取中进行操作
方法1:直接获取全文见,并使用for循环,好处是不需要使用readline,直接当做可迭代序列处理,简直太好用了
with open("文件名",'r') as t1:
for line in t1:
print(line.strip())
例子:
url:http://119.23.241.154:8080/futureloan/mvc/api/member/login,mobilephone:13760246701,pwd:123456
url:http://119.23.241.154:8080/futureloan/mvc/api/member/login,mobilephone:15678934551,pwd:234555
我有两行这样的数据,存在一个test_data.txt里面
要求如下:
1:将每一行的数据存到一个字典里面,且url、mobilephone、pwd为key,对应key后面的值为value。
然后讲读取的每行数据存储为字典后存到一个总的列表里面。返回总列表
2:写成函数
通过调用函数最后得到的数据为:
[{'url': 'http://119.23.241.154:8080/futureloan/mvc/api/member/login',
'mobilephone': '13760246701', 'pwd': '123456'},
{'url': 'http://119.23.241.154:8080/futureloan/mvc/api/member/login',
'mobilephone': '15678934551', 'pwd': '234555}]
'''
l1=[]
l2=[]
l3=[]
dic={}
with open('test_data.txt','r') as t1:
for content in t1:
content = content.strip()
content = content.split(',')
print(content)
for i in content:
l1.append(i.split(':')[0])
l2.append(i.split(':', 1)[1])
l3.append(dict(zip(l1, l2)))
print(l3)
方法2:使用readline,需要先读一行,再使用while,如果如果不是非要使用readline我才不用你
with open("文件名",‘r’) as t1:
line = t1.readline()
while line:
print(line.strip())
line = fh.readline()
----------------------------------------------
2020.5.9
with open 不适合打开excel文件,读取后都是报错,不过他能读取csv文件(编码格式是gbk)和txt,如果要读取excel还是用xlrd库
csv文件:
# -*- coding: UTF-8 -*-
with open("3.csv",encoding='gbk') as file1:
data = file1.read()
print (data)
>>
看,看,了
1,2,3
4,5,6
是,发,个
-----------------------------------------------------