4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
文件操作AndOSAnd序列化和反序列化 - 程序员大本营
来自 : www.pianshen.com/article/90707 发布时间:2021-03-24
Python3文件操作:

使用文件的目的: 就是把一些数据存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份, 省时省力,防止了数据的丢失。

1.打开文件

在Python,使用open函数,可以打开一个已经存放的文件,或者创建一个新的文件 open(文件名,访问模式)

 访问模式有如下:

\"\"

 实例如下: f = open( test.txt , r ) 注意的是: 1.常用的访问模式为 : r,w,a 2.使用r如果打开了一个不存在的文件,会报错。 3.同理,如果使用r+打开了一个不存在的文件,会报错。 4.read读取是一次性全部读取,如果再次读取相同的文件的读取不到任何东西的! 2.关闭文件: close() 示例如下: #新建一个文件,文件名为:test.txt f = open( test.txt , w ) #关闭这个文件 f.close() 3.文件的读写: 3.1 读文件: #打开一个文件 #如果文件不存在,会报错,如果操作文件里面的内容有中文, #这样写即可: f = open( test.txt , r ,encoding= UTF-8 ) f = open( test.txt , r ) content = f.read() print(content) #注意,再次读取是读取不到任何东西的,因为read是一次性全部读取! #content2 = f.read() #print( content2: ,content2) #关闭一个文件 f.close() 3.2 读取指定字符的长度: f = open( test.txt , r ) #read()可以写上每次要读取字符的长度 content = f.read(5) print(content) f.close() 3.3 使用with读取文件: with open( bbb.txt , r ,encoding= utf-8 ) as name: print(name.read()) 3.3 写文件: #写文件 #如果该文件存在就把该文件删除在创建打开,反之,先创建在打开 f = open( abc.txt , w ) #写文件 f.write( hahhah 2017,I LOVE YOU ) f.close() 4.读数据(readlines) 就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取, 并且返回的是一个列表,其中每一行的数据为一个元素。 #readlines f = open( test.txt , r ,encoding= utf-8 ) contentLines = f.readlines() print(contentLines) f.close() 返回结果: #一个列表,每一行是一个元素 [\'fsdfdsfsdf1\\n\', \'fdsfsdf2\\n\', \'fds3\\n\', \'fsdf4\\n\', \'sdf5\\n\', \'我爱你\'] 4.1 读数据(readline) 每一次只读取一行数据 f = open( test.txt , r ,encoding= utf-8 ) #每一次只读取一行数据 contentLines = f.readline() print(contentLines) contentLines = f.readline() print(contentLines) f.close() 返回结果: fsdfdsfsdf1 fdsfsdf2 5.完成一个复制文件 #1.打开要复制的文件 f_read = open( test.txt , r ,encoding= utf-8 ) #2.创建一个新的文件,用来存储源文件的数据内容 f_write = open( test[附件].txt , w ) #3.复制 content = f_read.read() f_write.write(content) #4.关闭文件 f_write.close() f_read.close()
6.文件的随机读写:

定位: 可以从指定的位置,往下执行,不用从头开始。

6.1 获取当前读写的位置 在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取。

例子一枚:

f = open( abc.txt )

f.read(1)

f.read(1)

f.read(1)

#获取当前读取到的位置

position=f.tell()

print(position)

f.close()

6.2 定位到某个位置

如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()

seek(offset,from)有2个参数

*offset:偏移量

*from:方向

0:表示文件开头

1:表示当前位置

2:表示文件末尾

例子:

#练习seek

#创建一个文件

w = open( www.txt , w+ )

#在文件中写入值

w.write( hahahhahahlalalla )

#读取写入的文件

content = w.read()

#输出 发现输出的是空白,原因就是你刚刚写入的文件,光标是在最后一位,而read()

# 是根据光标所在的位置进行读取。

print(content)

#解决方法就是,使用seek(),把光标定位到开头 w.seek(0,0)

#再次读取

content2 = w.read()

#现在返回的就有数据啦

print(content2)

#关闭 w.close()

7. 文件的重命名、删除

有些时候,需要对文件进行重命名、删除等一些操作,python的os模块中都有这个功能。

7.1 文件的重命名

os模块中的rename()可以完成对文件的重命名操作

rename(需要修改的文件名,新的文件名)

例子一枚:

import os

os.rename( abc.txt , cba.txt )

7.2 删除文件

os模块中的remove()可以完成对文件的删除操作

remove(待删除的文件名)

栗子一枚:

import os

#删除

os.remove( abc[复制].txt )

8.文件夹的相关操作:

实际开发中,有时需要用程序的方式对文件夹进行一定的操作,比如创建、删除等。

就像对文件操作需要os模块一样,如果要操作文件夹,同样需要os模块

8.1 创建文件夹

例子一枚:

import os

#创建文件夹

os.mkdir( 文件夹 )

8.2 获取当前目录

栗子一枚:

import os

#获取当前目录

print(os.getcwd())

8.3 改变默认目录

栗子一枚:

import os

#改变当前目录

print(os.chdir( ../ ))

8.4 获取目录列表

栗子一枚:

import os

#获取当前目录列表

print(os.listdir( ./ ))

8.5 删除文件夹

栗子一枚:

import os

#删除文件夹

os.rmdir( 文件夹 )

8.6 批量修改重命名

栗子一枚:

# ./代表当前目录下的test文件夹

allFileName = os.listdir( ./test )

for name in allFileName:

os.rename( ./test/ +name, ./test/[张xx出品]- +name)

9. 简单的使用文件爬取一个页面:

栗子一枚:

from urllib import request

response = request.urlopen( http://www.baidu.com )

fi = open( project.txt , w )

page = fi.write(str(response.read()))

fi.close()

10.关于序列化和反序列化:

序列化就是把对象以二进制的形式保存到本地。

反序列化就是把保存到本地的二进制对象,反序列化成对象,在代码中直接使用。

上例子:

import pickle

#序列化

#要序列化的对象

data1={ a :[1,2,3], b : bb , c :None }

#创建一个本地文件

f = open( ccc.txt , wb )

#使用pickle下的dump把对象给序列化dump(对象类型,本地路径)

pickle.dump(data1,f)

#关闭

f.close()

#反序列化

#把这个文件的内容给取出来

ff = open( ccc.txt , rb )

#使用了load

result = pickle.load(ff)

print(result)

返回结果为: {\'a\': [1, 2, 3], \'b\': \'bb\', \'c\': None}

本文链接: http://andos.immuno-online.com/view-707486.html

发布于 : 2021-03-24 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://