Python学习笔记005_文件_OS_模块_pickle
>>>
>>> # 文件 open()方法是打开文件,它有很多参数,第一个文件名是必须的(带路径)
>>>
>>> f = open('E:/BaiduYunDownload/awei.txt')
>>> f
<_io.TextIOWrapper name='E:/BaiduYunDownload/awei.txt' mode='r' encoding='cp936'>
>>> # 直接读取文件的内容
>>> f.read()
'------------数据库---------------------------------------------------\ndev\njdbc.url=jdbc\\:oracle\\:thin\\:@30.3.4.78\\:1521\\:vtmdb\n\njdbc.username=receipt\njdbc.password=dxyxjr1234\n\nuat\njdbc.url=jdbc\\:oracle\\:thin\\:@30.3.4.95\\:1521\\:vtmdb\n\njdbc.username=receipt\njdbc.password=Zxjr1234\n数据库一般用户的权限 connect resource\n\n我本地的数据库用户名 和密码也是 receipt dxyxjr1234'
>>> # 获取当前文件指针的位置
>>> f.tell()
382
>>> # 关闭文件
>>> f.close()
>>>
>>> # 重新打开文件
>>> f = open('E:/BaiduYunDownload/awei.txt')
>>> # 读取指定个数的字符
>>> f.read(10)
'----------'
>>> f.tell()
10
>>>
>>> # 修改文件指针的位置 seek(offset,from):
>>> # 从from(0表示文件起始位置,1表示文件当前位置,2表示文件末尾)偏移offse个字节
>>> f.seek(0,0)
0
>>> # 读取一行
>>> f.readline()
'------------数据库---------------------------------------------------\n'
>>>
>>> # 可以使用list将文件内容包裹成列表
>>> f.seek(0,0)
0
>>> list(f)
['------------数据库---------------------------------------------------\n', 'dev\n', 'jdbc.url=jdbc\\:oracle\\:thin\\:@30.3.4.78\\:1521\\:vtmdb\n', '\n', 'jdbc.username=receipt\n', 'jdbc.password=dxyxjr1234\n', '\n', 'uat\n', 'jdbc.url=jdbc\\:oracle\\:thin\\:@30.3.4.95\\:1521\\:vtmdb\n', '\n', 'jdbc.username=receipt\n', 'jdbc.password=Zxjr1234\n', '数据库一般用户的权限 connect resource\n', '\n', '我本地的数据库用户名 和密码也是 receipt dxyxjr1234']
>>>
>>> f.tell()
382
>>> f.seek(0,0)
0
>>> # 我们可以直接迭代文件对象
>>>
>>> for each_line in f :
print(each_line)
------------数据库---------------------------------------------------
dev
jdbc.url=jdbc\:oracle\:thin\:@30.3.4.78\:1521\:vtmdb
jdbc.username=receipt
jdbc.password=dxyxjr1234
uat
jdbc.url=jdbc\:oracle\:thin\:@30.3.4.95\:1521\:vtmdb
jdbc.username=receipt
jdbc.password=Zxjr1234
数据库一般用户的权限 connect resource
我本地的数据库用户名 和密码也是 receipt dxyxjr1234
>>>
>>> # 文件的写入,必须是使用w或者a打开才能行
>>> f.close()
>>> f = open('E:/BaiduYunDownload/awei.txt','a')
>>> f.write('I love you')
10
>>> f.close()
# 模块(可用代码段的打包),它是包含所定义的变量、函数的文件,扩展名是py 它可以被其它程序所引用
# 比如 os模块, time模块
#使用模块中的函数时,应该先引用 import
>>>
>>> #Python提供了一个标准模块pickle(它的英文意思是泡菜),利用它可以将字典、集合等复杂的数据类型转化为二进制文件
>>> # 对象转换为二进制流 是 存放 picking
>>> # 二进制流转换为对象 是 读取 unpickling
>>>
>>> import pickle
>>> my_list = [123,3.14,False,'杨伟',['awei hh']]
>>> #打开文件 ,文件后缀名随便起,这里我们统一自定义为 pkl
>>> # 这里一定要使用二进制方式写文件方式打开
>>> pickle_file = open('E:/yangw.pkl','wb')
>>> # 用dump方法将对象保存到二进制文件中,文件用完记得要关闭
>>> pickle.dump(my_list,pickle_file)
>>> pickle_file.close()
>>>
>>> # 读取二进制文件 ,将二进制流转换为对象使用load方法
>>> pickle_file = open('E:/yangw.pkl','rb')
>>> my_list2 = pickle.load(pickle_file)
>>> pickle_file.close()
>>> my_list2
[123, 3.14, False, '杨伟', ['awei hh']]
>>>
>>> # 这个在实际的编程中,我们会遇到复杂的、数据量特别多的数据,这个时候可以使用pickle 将数据保存dump到二进制文件中,使用时使用load加载
>>>
>>>
Python学习笔记005_文件_OS_模块_pickle的更多相关文章
- Python学习笔记之文件处理
1.打开和关闭 要打开文件可以使用函数 open(),它位于自动导入模块 io 中.函数将文件名作为唯一不可缺少的函数,并返回一个文件对象.它还有一个名叫 mode 的参数,用于指定文件模式,其可取值 ...
- [Python学习笔记]组织文件
shutil 模块 shutil 模块可以让我们很方便的在Python程序中复制.移动.改名和删除文件. 复制文件和文件夹 使用shutil.copy()来复制文件,该函数含两个参数,均为字符串格式的 ...
- python学习笔记-(九)模块
基础知识 1. 定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑----实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块就是test) 包:用 ...
- python学习笔记之九:模块和包
Python的标准安装包括一组模块,称为标准库.这里介绍模块的工作方式,学习如何使用它们. 一. 模块 1.1 用import从外部模块获取函数并为自己的程序所用: >>> from ...
- Python学习笔记015——文件file的常规操作之一(文本文件)
1 什么是文件 文件是用于数据存储的单位 文件通常用来长期保存数据 读写文件是最常见的I/O操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件的功能都是由操作系统提供的,一般而言,操 ...
- python学习笔记(11):文件的访问与函数式编程
一.文本文件读写的三种方法 1.直接读入 file1 = open('E:/hello/hello.txt') file2 = open('output.txt','w') #w是可写的文件 whil ...
- python学习笔记(7)文件的访问与函数式编程
一.文件读写的3中方法 1.直接读入 fiel1=open('test.txt') file2=open('output.txt') while True: line=file1.readLine() ...
- python学习笔记(六)---文件操作与异常处理机制
文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...
- python学习笔记(六)— 模块
一.os.sys模块 import os print(os.getcwd())#取当前工作目录,绝对路径 print(os.chdir("../"))#更改当前目录 print(o ...
随机推荐
- 学习笔记TF051:生成式对抗网络
生成式对抗网络(gennerative adversarial network,GAN),谷歌2014年提出网络模型.灵感自二人博弈的零和博弈,目前最火的非监督深度学习.GAN之父,Ian J.Goo ...
- Spring中Druid链接池的配置
本文记录了使用Druid的方法, 包括Spring和Spring boot中使用Druid的配置方法. Spring中配置Druid连接池 以链接mysql为例 1 添加druid依赖 <dep ...
- 定时任务备份数据库与windows批处理
前言: 关于数据库备份的方法有很多,你可以在命令行执行mysqldump命令进行备份,也可以使用数据库管理工具,比如navicat进行数据库的备份. 但是以上数据库的备份都是可以单次备份,总不能要一个 ...
- node里面的c/c++模块
准备工作 node使用c++插件时需要使用node-gyp包,node-gyp把c++源码编译为二进制文件,js在调用二进制文件,编译后的二进制文件模块调用就和js的模块调用一样. npm insta ...
- eclipse中使用Maven管理java工程设置jdk版本为jdk1.8
使用Maven管理Java工程时,maven可以自动下载工程中依赖的jar包,这对于大型的项目非常方便.但在初次使用eclipse新建maven工程时遇到一些问题,我的jdk安装的是1.8版本,在配置 ...
- poj 2528 poster经典线段树+lazy+离散化
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; #def ...
- MySql按每日、每周、每月分组统计数据
select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select ...
- jQuery ajax error函数(交互错误信息的获取)
一般error函数返回的参数有三个: function(jqXHR jqXHR, String textStatus, String errorThrown).常见调用代码如下: $.ajax({ u ...
- What is the difference between Debug and Release in Visual Studio?
"Debug" and "Release" are actually just two labels for a whole slew of settings ...
- java快速排序详解
快速排序 public class QuickSort { public static void main(String[] args) { int[] a = { 0, 3, 6, 8, 2, 4, ...