大数据微专业_1.Python基础_1.7_数据读写
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了大数据微专业_1.Python基础_1.7_数据读写,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5862字,纯文字阅读大概需要9分钟。
内容图文
![大数据微专业_1.Python基础_1.7_数据读写](/upload/InfoBanner/zyjiaocheng/720/c105e19d55fe4cd19176fe14bb23d360.jpg)
In [ ]:
''' 1.7.1 文件对象声明及基本操作 另一种数据格式:文件/文档 '''
In [3]:
# 本地文件的界定:指向一个本地存储的文件,是一个连接或一个映射 path1 = 'C:/Users/PC/Desktop/test.txt' # 单个反斜杠:/ path2 = 'C:\\Users\\PC\\Desktop\\test.txt' # 两个斜杠:\\(第一个是转义符) path3 = r'C:\Users\PC\Desktop\test.txt' # r用于防治字符转义 #路径书写格式 print(path1) print(path2) print(path3)
C:/Users/PC/Desktop/test.txt C:\Users\PC\Desktop\test.txt C:\Users\PC\Desktop\test.txt
In [8]:
# 读取文件:open语句 f = open(path2,'r') print(type(f)) print(f) print(f.read()) # 读取文件里面的内容 print('read complete') # open('paht','mode', encoding = 'coding') # mode: r: read document, by default; w: write; a: append; # 简单的读取方式:.read()方法读取后,光标会留在读取末尾,再次读取时则无任何内容 print(f.read()) # 解决办法之一:透过f.seek(0)函数,重新将光标移到开始的位置 f.seek(0) print(f.read()) f.close() # 读取完毕,应该close
<class '_io.TextIOWrapper'> <_io.TextIOWrapper name='C:\\Users\\PC\\Desktop\\test.txt' mode='r' encoding='cp1252'> 12232 dfsd read complete 12232 dfsd
In [ ]:
''' 1.7.2 系统模块下的路径操作 os模块:提供了非常丰富的方法用来处理文件和目录 '''
In [10]:
# os模块:系统模块 - 常用命令 import os #导入模块 print(os.name) # 输出字符串指示正在使用的操作系统平台。如果是windows,则用nt表示,对linux/unix用户,他是'posix' print(os.getcwd()) #函数得到当前工作目录,即当前Python脚本工作的目录路径 print(os.listdir()) #返回指定目录下的所有文件和目录名 # os.chdir('C:\\Users\\root\\Desktop\\') #切换到目标路径 # print(os.getcwd()) # os.remove(test2.txt) #删除文件 print(os.path.split('C:\\Users\\PC\\Desktop\\test.txt')) #返回一个路径的目录名和文件名 print(os.path.exists('C:\\Users\\PC\\Desktop\\test.txt')) #用来检验给出的路径是否真的存在,如果不存在则输出False,存在返回True print(os.path.exists('C:\\Users\\PC\\Desktop\\hehe.txt'))
nt C:\Users\PC\Python_Study\Python_01 ['.ipynb_checkpoints', '1-Python基础_1.3_字典映射.ipynb', '1.Python基础_1.1_变量与数据类型.ipynb', '1.Python基础_1.2_序列及通用操作.ipynb', '1.Python基础_1.4_条件判断及循环语句.ipynb', '1.Python基础_1.5_函数.ipynb', '1.Python基础_1.6_模块与包.ipynb', '1.Python基础_1.7_数据读写.ipynb', '1.Python基础_1.8_项目案例.ipynb', 'bigdata.csv'] ('C:\\Users\\PC\\Desktop', 'test.txt') True False
In [15]:
# 相对路径与绝对路径 f1 = open('C:\\Users\\PC\\Desktop\\test.txt','r',encoding = 'utf8') # 绝对路径 #切换到相对路径 os.chdir('C:\\Users\\PC\\Desktop\\') f2 = open('test.txt',encoding = 'utf8') print(f1.read()) print(f2.read()) f1.close()
12232 dfsd 12232 dfsd
In [ ]:
''' 1.7.3 文件的读取与写入 os模块:提供了非常丰富的方法用来处理文件和目录 '''
In [19]:
# 文件读取 - read f1 = open('C:\\Users\\PC\\Desktop\\test.txt','r',encoding = 'utf8') # 绝对路径 print(f1.read()) # 直接读取(这里光标默认会在最末尾) # ANSI 用gbk编码 # 汉字用utf8编码
12232 dfsd
In [20]:
f.seek(0) print(f.read(2)) # f.read(n):n代表读取多少个字符
12
In [29]:
f.seek(0) print(f.readline()) print(f.readline()) print(f.readline(4)) # 读取行到字符串,一次读取一行 # f.readline(n): 读取改行的前n个字符 f.seek(0) print(f.read())
12232 dfsd 3333 12232 dfsd 33333333333
In [34]:
f = open('C:\\Users\\PC\\Desktop\\test.txt','r',encoding = 'utf8') # print(f.readlines()) # 一次性读取全部内容,并生成一个列表,一般,f.readlines()用作遍历使用 f.seek(0) #每次读完,都要重新定位光标位置 for line in f.readlines(): print(line)
['12232\n', 'dfsd\n', '33333333333'] 12232 dfsd 33333333333
In [40]:
# 截取一段POI数据,将其分离成Json的形式 f = open('C:\\Users\\PC\\Desktop\\test1.txt','r') m = [] # 创建一个列表,方便后续读取使用 n = 0 # 为了建立读取文件 f.seek(0) for line in f.readlines(): n += 1 st1 = line.split(':') name = st1[0] information = st1[1] 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(data) print(m[:10]) print('\n总共转换数据%i条'%n)
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-40-acdfe285f93b> in <module>() 10 st1 = line.split(':') 11 name = st1[0] ---> 12 information = st1[1] 13 st2 = information.split(',') 14 lng = st2[0] IndexError: list index out of range
In [9]:
# 文件写入 path = 'C:\\Users\\PC\\Desktop\\test_write.txt' f = open(path,'w',encoding = 'utf8') f.write('hello world!') # 执行后直接创建test_write.txt文件,并写入hello world # 12代表输入了12个字符,但是文件内真的有写入吗?没有 f.close() # 在执行了f.close()之后,内容才被真的输入
In [13]:
# 依次写入元素 path = 'C:\\Users\\PC\\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
In [14]:
lst1 = list(range(1,11)) lst2 = ['a','b','c','d','e','f','g','h','i','j'] path = 'C:\\Users\\PC\\Desktop\\' f = open(path + 'test_write3.txt','w',encoding = 'utf8') m = [] for i in range(len(lst1)): lst = [str(lst1[i]),',',lst2[i]+'\n'] # lst = str(lst1[i]+','+lst2[i]+'\n') m.append(lst) f.writelines(lst) f.close() print(m)
[['1', ',', 'a\n'], ['2', ',', 'b\n'], ['3', ',', 'c\n'], ['4', ',', 'd\n'], ['5', ',', 'e\n'], ['6', ',', 'f\n'], ['7', ',', 'g\n'], ['8', ',', 'h\n'], ['9', ',', 'i\n'], ['10', ',', 'j\n']]
In [ ]:
''' 1.7.4 pickle模块的运用 pickle提供了一个简单的持久化功能,可以将对象以文件的形式存放在磁盘上 python的pickle模块实现了基本的数据序列和反序列化 通过pickle模块的序列化从操作,我们能够将程序中运行的对象信息保存到文件中永久存储 通过pickle模块的反序列操作,我们能够从文件中创建上一次程序保存的对象 pickle.dump() / pickle.load() '''
In [16]:
# 存储:pickle.dump(obj,file,[,protocol]) import pickle data = {'a':[1,2,3,4],'b':('string','abc'),'c':'hello'} print(data) #创建一个字典变量data pic = open('C:\\Users\\PC\\Desktop\\pkl','wb') # 以二进制来存储:rb,wb,wrb,ab pickle.dump(data,pic) pic.close() # 将一个字典数据存成了pkl文件,保持数据结构不变,比txt文件存储的信息更多一点
{'a': [1, 2, 3, 4], 'b': ('string', 'abc'), 'c': 'hello'}
In [17]:
# 读取 pic2 = open('C:\\Users\\PC\\Desktop\\pkl','rb') data = pickle.load(pic2) print(data)
{'a': [1, 2, 3, 4], 'b': ('string', 'abc'), 'c': 'hello'}
内容总结
以上是互联网集市为您收集整理的大数据微专业_1.Python基础_1.7_数据读写全部内容,希望文章能够帮你解决大数据微专业_1.Python基础_1.7_数据读写所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。