Python数据分析实战8.3- 文件的读取与写入【python】

【课程8.3】 文件的读取与写入

os 模块:提供了非常丰富的方法用来处理文件和目录

1.文件读取 - read

f = open('C:\\Users\\Hjx\\Desktop\\text.txt', 'r')
print(f.read())
# 直接全部读取(这里光标默认会在最末尾)
f.seek(0)#使光标回到最开始
print(f.read(2))
# f.read(n):n代表读取多少个字符
print(f.readline())
print(f.readline(4))
# 读取行到字符串,一次性读取一行
# f.readline(n):读取该行的前n个字符
-----------------------------------------------------------------------
for line in f.readlines():
    print(type(line),line)
# 遍历一个文件:for语句+f.readlines()
-----------------------------------------------------------------------
<class 'str'> The Zen of Python, by Tim Peters

<class 'str'> Beautiful is better than ugly.

<class 'str'> Explicit is better than implicit.

<class 'str'> Simple is better than complex.

小作业
利用百度POI小插件爬取一些poi数据,然后存成txt,再用python读取,编写成一个json形式(列表字典):
[{‘name’:’…’, ‘lng’:…, ‘lat’:…, ‘address’:’…’},{…},…,]

# 答案代码

path = 'C:\\Users\\Hjx\\Desktop\\jiuba.txt'  # 创建路径变量
f = open(path,'r')  # 读取txt文件
m = []  # 新建一个空列表,用于存储数据
n = 0

for line in f.readlines():
    n += 1
    st1 = line.split(':')
    name = st1[0]   # 先以:拆分,筛选出name文本
    information = st1[1]  # 第二部分包括lng,lat,address
    st2 = information.split(',')#再以,拆分
    lng = float(st2[0])  # 筛选出lng
    lat = float(st2[1])  # 筛选出lat
    ad = st2[2].strip()  # 筛选出address,去除末尾空格
    data = [['name',name],['lng',lng],['lat',lat],['address',ad]]  # 做成嵌套列表
    m.append(dict(data))  # 生成字典,并追加如列表m
    #print('成功转换%i个数据'%n)

print(m)
print('\n数据转换完成!总共转换%i个数据'%n)
-----------------------------------------------------------------------

2.文件写入 - write

path =  'C:\\Users\\Hjx\\Desktop\\test_write.txt' 
f = open(path, 'w', encoding = 'utf8')
f.write('hello world!')
# 执行后直接创建“test_write.txt”文件,并写入“hello world!”
f.close()
# 为什么没有?因为刚才是在内存里运行,我们需要再加上close才能写入
-----------------------------------------------------------------------
path =  'C:\\Users\\Hjx\\Desktop\\' 
f = open(path + 'test_write2.txt', 'w', encoding = 'utf8')
lst = ['a','b','c','d','e']
f.writelines(lst)
f.close()
# f.writelines(list):依次把列表元素写入,但这里有没有换行?
# 如果想每一个元素换行怎么办? → 每个元素后都有"\n"
-----------------------------------------------------------------------
path =  'C:\\Users\\Hjx\\Desktop\\' 
f = open(path + 'test_write2.txt', 'w', encoding = 'utf8')
lst = ['a','b','c','d','e']

for i in range(len(lst)):
    lst[i] = lst[i] + '\n'
    
f.writelines(lst)
f.close()
# 通过遍历给每个元素最后加上"\n"
-----------------------------------------------------------------------

小作业
两个列表[110],[aj],写入一个txt,变成以下格式
1,a
2,b
3,c

# 答案代码

n = list(range(1,11))
type(n)
v = ['a','b','c','d','e','f','g','h','i','j']

f = open( 'C:\\Users\\Hjx\\Desktop\\test_write3.txt', 'w', encoding = 'utf8')
m = []

for i in range(len(n)):
    f.writelines(str(n[i])+','+v[i] + '\n')

f.close()
print('finished!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值