Python-数据读写

os模块

#系统内置模块 不需要install
import os

print(os.name) #输出正在使用平台 window-nt   linux/unix-posix
print(os.getcwd()) #获取当前脚本工作目录
print(os.listdir()) #获取当前路径下文件列表

#os.chdir('/Users/Documents') #切换到指定路径
#os.remove('m.txt') #删除文件


#返回一个包含路径和文件名的元组
print(os.path.split('/Users/Documents/python/text.txt'))

os.chdir('/Users/Documents/python')
#判断文件或路径是否存在
print(os.path.exists('text.txt')) #在上面已经指定了路径
print(os.path.exists('/Users/Documents/python'))


posix
/Users/Documents/python
['.DS_Store', 'text.txt']
('/Users/Documents/python', 'text.txt')
True
True

文件读取

#选择本地一个txt文件 复制路劲 加‘r’避免路径被转义
path =r'/Users/Documents/python/text.txt'
#open('路径',‘模式’,enconding='编码')
#模式: r:读取文件, 默认:w(写入) rw:读+写(尽量分开用r或w) a:追加
#编码:默认编码cp936 如果文件有指定编码需要指定编码读取 否则可能乱码
f = open(path, 'r')
print('第一次读取开始')
print(f.read())
print('第一次读取结束')
​
​
#每次read以后 光标会停留在读取末尾,所以再次读取输出会为空
print('第二次读取开始')
print(f.read())
print('第二次读取结束')
​
#移动光标位置
f.seek(0)
print('第三次读取开始')
print(f.read(20)) #read参数为位置索引
print('第三次读取结束')
​
f.seek(0)
print('第四次读取开始')
print(f.readline(5)) #读取光标所在行 可以添加参数指定读取前多少个字符
print('第四次读取结束')
​
​
f.seek(0)
print('第五次读取开始')
print(f.readlines()) #返回一个列表
​
f.seek(0)
for line in f.readlines():
    print(line)
print('第五次读取结束')
​
#关闭文件链接 关闭后无法读取
f.close()
#print(f.read()) #提示:I/O operation on closed file.
​
第一次读取开始
python文件读取1
python文件读取2
python文件读取3
python文件读取4
python文件读取5
python文件读取6
python文件读取7
第一次读取结束
第二次读取开始

第二次读取结束
第三次读取开始
python文件读取1
python文件
第三次读取结束
第四次读取开始
pytho
第四次读取结束
第五次读取开始
['python文件读取1\n', 'python文件读取2\n', 'python文件读取3\n', 'python文件读取4\n', 'python文件读取5\n', 'python文件读取6\n', 'python文件读取7']
python文件读取1

python文件读取2

python文件读取3

python文件读取4

python文件读取5

python文件读取6

python文件读取7
第五次读取结束

文件写入

os.chdir('/Users/Documents/python')
f_w = open('demo.txt', 'w', encoding='utf8')
f_w.write('haha\n')

#大多数时候是写入一个list
lst = ['xiaoming', 'xiaoli', 'xiaohong']
for i in range(len(lst)):
    lst[i] = lst[i] + '\n'
f_w.writelines(lst)

f_w.close() #写入以后要记得close关闭写入 不然程序不知道什么时候写入结束


demo.txt

haha
xiaoming
xiaoli
xiaohong

pickle模块 

pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。有时候用py生成的文件并不关注内容是否方便阅读

不想费力的去把数据做各种格式化,加载保存过的pickle文件,可以立刻复原之前程序运行中的对象。

import pickle
import os

os.chdir('/Users/shiqiyuan/Documents/python')

#存储
data = {'a': [1,2,3,4], 'b': 'asda'}
pic = open('data.pkl', 'wb')
pickle.dump(data, pic)
pic.close()

#读取
pic2 = open('data.pkl', 'rb')
data2 = pickle.load(pic2)
print(data2) #{'a': [1, 2, 3, 4], 'b': 'asda'}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值