python之数据处理

#文件数据读写的基本操作
import this
#本地文件的界定:指向一个本地存储的文件,是一个连接或者一个映射
path1 = 'C:\\Users\\11786\\Desktop\\test.txt'#正斜线两个或者反斜线一个来用于数据路径的表达  再或者用r 写在文件路径外面 推荐第三种
path2 = 'C:/Users/11786/Desktop/test.txt'
path3 = r'C:\Users\11786\Desktop\test.txt'

print(path1)
print(path2)
print(path3)
 #读取文件 用open 语句
f = open(path1,'r',encoding ='utf8')
print(type(f))
print(f)
print(f.read())
#open('路径','模式',encoding='编码')
#模式 r:读取文件, 默认:w ;写入:rw(读取加写入) a:追加
#简答的读取办法  .read() 读取后,光标会停留在读取末尾
print('二次读取')
print(f.read())
print('二次读取完毕')
#当运行第一次.read()之后,光标处于文档末尾 ,再次读取输出的结果为空

f.seek(0)#移动光标的位置到文档开头 0 
print('三次读取')
print(f.read())
print('三次读取完毕')

f.close()
print('四次读取')
print(f.read())
print('四次读取完毕')

#print(f.read())关闭文件后无法读取
#关闭文件链接 f.close()形成一个好习惯
#系统模块下的路径操作方法 os模块提供了丰富的方法来处理文件和目录
import os
print(os.name)#输出字符串正在使用的平台,如果是windows则用nt 表示 对于linux则是posix
print(os.getcwd())#返回当前路径 当前python脚本工作的目录路径
print(os.listdir())#返回指定目录下的所有文件和目录名
 
os.chdir('C:/Users/11786/Desktop/')#切换到目标路径
print(os.getcwd())
print(os.listdir())

#os.remove('test2.txt ') #删除目标路径下的文件

flst = os.path.split('C:/Users/11786/Desktop/test.txt')#函数返回一个路径的目录名和文件名
print(flst,type(flst))

print(os.path.exists('C:/Users/11786/Desktop/test.txt'))#判断路径下是否有文件 或者路径
print(os.path.exists('C:/Users/11786/Desktop'))  

#建议先定义一个工作的目录 之后用相对路径定位选择就好
#文件的读取与写入
#文件读写read
os.chdir('C:/Users/11786/Desktop/') 
f = open('test.txt','r',encoding ='utf8')#txt存储的时候的编码设置  ANSI-‘gbk’ UTF_8 -'utf8'
print(f.read())
f.seek(0)

print(f.read(10))#读取文件的前十个文件  记得每次用seek将光标移动到文档开头
f.seek(0)

f.seek(0)
print(f.readline())
print(f.readline())#按照行来读取文档 一次性读取一行 
f.seek(0)
print(f.readline(10))#读取改行的前n个元素 f.readline(n)

#遍历一个文件:for语句+f.readlines()
f.seek(0)
print(f.readlines())
for line in f.readlines():
    print(line)
#小作业 利用百度POI小插件来爬去一些pol数据,然后存成txt,然后再用python读取,编写成一个json形式(列表字典)
os.chdir('C:/Users/11786/Desktop/') 
f = open('数据.txt','r',encoding ='gbk ') #这里的数据.tex为从POI等工具上下载下来的无序数据 
#思路构建:观察获取的数据,获取每一行  每一行中用:分隔的前面为名字 后面为具体经纬度信息,于是先切片得到名字name
#随后在information中得到具体的经纬度信息 整理将其写入空的字典中m  用n来计算循环的次数
m = []
n = 0
f.seek(0)
for line in f.readlines():
    n+=1
    st1 = line.split(':')
    name = st1[0]
    information = st1[1]
    print(information)
    st2 = information.split(',')
    lng = st2[0]
    lat = st2[1]
    add = st2[2].strip()
    data = [['name', name],['lng', lng],['lat', lat],['address',add]]
    m.append(dict(data))
    print(dict(data))
print(m[:10]) 
print('\n总共转换数据多少条'%n)

posted @ 2020-10-26 17:33  秃头统治世界  阅读(213)  评论(0)    收藏  举报