1.打开文件的集中模式:

2.文件对象方法:

对于文件对象方法的练习代码:

读取F:\\script\\script.txt位置文件中内容

 >>> f=open('F:\\script\\script.txt','rt') #打开文件位置
>>> f #查看f相关内容
<_io.TextIOWrapper name='F:\\script\\script.txt' mode='rt' encoding='cp936'>
>>> f.read() #读取script.txt文件中内容
'琪琪:小甲鱼问你有没有男朋友,我跟他说你没有。\n我:…………'
>>> f.read()
'' #由于上面已经读取过了,所以指针已经指到了末尾,继续读取为空字符
 >>> f=open('F:\\script\\script.txt','rt')
>>> f.read(5) #读取前5个字符
'琪琪:小甲'
>>> f.tell()
10
>>> f.seek(4,0) #重新定位指针指向到位置4
4
>>> f.readline() #从位置4开始读取本行内容
':小甲鱼问你有没有男朋友,我跟他说你没有。\n'
>>> list(f) #继续以列表的形式读取下一行内容
['我:…………']
#用list及for语句打印出‘script.txt’中代码
>>> lines=list(f)
>>> for each_line in lines:
print(each_line) 琪琪:小甲鱼问你有没有男朋友,我跟他说你没有。 我:…………
#只用for语句打印出‘script.txt’中代码
>>> for each_line in f:
print(each_line)
琪琪:小甲鱼问你有没有男朋友,我跟他说你没有。 我:…………

在某个目录下创建一个新文件并写入相关内容:

>>> f=open('F:\\script\\test.txt','w') #打开某位置的test.txt,如果此目录下没有此文件,自动创建此文件
>>> f.write('我爱郭琦') #在test.txt中写入的内容
4 #写入test.txt中的字符数
>>> f.close() #只有做此操作write内容才能够真正写入指定文件,不然write的内容会在缓存中

执行以上代码后自动创建的文件‘test.txt’

执行close()操作后,test.txt文件中内容也同时写入:

——————————————————————————————————————————————

文件的花样操作(一个文件肢解成多个文件)

文件内容截图

实现代码:

切片函数学习:

 f=open('script.txt')
#初始化不同身份以方便下面分解对话到不同文件
boy=[]
girl=[]
#初始化一个计算器,来分提取对话的文档名称
count=1
for each_line in f:
if each_line[:6] !='==========': #判断是否是等号如果是进行字符串操作
(role,line_spoken)=each_line.split(':',1) #此处用到分解函数参照上图
if role=='小甲鱼':
boy.append(line_spoken)
if role='小客服':
girl.append(line_spoken)
else: #如果不是等号,进行文件分别保存
#按照规则命名个角色对应文件名称
file_name_boy='boy_'+str(count)+'.txt'
file_name_girl='girl_'+str(count)+'.txt'
#打开文件
boy_file=open(file_name_boy,'w')
girl_file=open(file_name_girl,'w')
#写入文件内容
boy_file.writelines(boy)
girl_file.writelines(girl)
#关闭文件
boy_file.close()
girl_file.close()
#分解完一段对话后重新初始化各角色,再次进行对话分解
boy=[]
girl=[]
count+=1
#由于第三段末尾没有===,所以需要单独再写一段
file_name_boy='boy_'+str(count)+'.txt'
file_name_girl='girl_'+str(count)+'.txt' boy_file=open(file_name_boy,'w')
girl_file=open(file_name_girl,'w') boy_file.writelines(boy)
boy_file.writelines(boy) boy_file.close()
girl_file.close()

对于上段代码进行代码简化并优化:

 def save_file(boy,girl,count):
file_name_boy='boy_'+str(count)+'.txt'
file_name_girl='girl_'+str(count)+'.txt' boy_file=open(file_name_boy,'w')
girl_file=open(file_name_girl,'w') boy_file.writelines(boy)
boy_file.writelines(boy) boy_file.close()
girl_file.close() #封装以下代码
def split_file(file_name):
f=open('script.txt')
#初始化不同身份以方便下面分解对话到不同文件
boy=[]
girl=[]
#初始化一个计算器,来分提取对话的文档名称
count=1
for each_line in f:
if each_line[:6] !='==========': #判断是否是等号如果是进行字符串操作
(role,line_spoken)=each_line.split(':',1)
if role=='小甲鱼':
boy.append(line_spoken)
if role='小客服':
girl.append(line_spoken)
else: #如果不是等号,进行文件分别保存
save_file(boy,girl,count) #分解完一段对话后重新初始化各角色,再次进行对话分解
boy=[]
girl=[]
count+=1
#由于第三段末尾没有===,所以需要单独再写一段
save_file(boy,girl,count)
f.close()
#设置主程序
split_file('scipt.txt')

————————————————————————————————————————————————

挂载点:

挂载点实际上就是linux中的磁盘文件系统的入口目录,类似于windows中的用来访问不同分区的C:、D:、E:等盘符

————————————————————————————————————————————————

OS个函数:

代码:

 >>> os.sep
'\\'
>>> os.linesep
'\r\n'
>>> os.name
'nt'
>>> os.curdir
'.'
>>> os.listdir(os.curdir)
['DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'tcl', 'Tools']
>>> os.path.basename('E:\\A\\B\\C\\sexy.avi')
'sexy.avi'
>>> os.path.dirname('E:\\A\\B\\C\\sexy.avi')
'E:\\A\\B\\C'
>>> os.path.join('A','B','C')
'A\\B\\C'
>>> os.path.join('C:','A','B','C')
'C:A\\B\\C'
>>> os.path.join('C:\\','A','B','C')
'C:\\A\\B\\C'
>>> os.path.split('E:\\A\\SEXY.AVI')
('E:\\A', 'SEXY.AVI')
>>> os.path.split('E:\\A\\B\\SEXY.AVI')
('E:\\A\\B', 'SEXY.AVI')
>>> os.path.split('E:\\A\\B\\C')
('E:\\A\\B', 'C') #由于没有文件,所以会自动识别C路径为文件名,这里还是需要人工自动识别才好
>>> os.path.splitext('E:\\A\\B\\SEXY.AVI')
('E:\\A\\B\\SEXY', '.AVI')
>>> os.path.getatime('D:\\各种视频\\Python\\学习笔记\\test_1.py') #得到一个浮点数时间,引入时间模块后可以转化为可识别的时间数字
1488955403.494545
>>> import time #引入时间模块
>>> time.gmtime(os.path.getatime('D:\\各种视频\\Python\\学习笔记\\test_1.py')) #英国标准时间gmtime
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=8, tm_hour=6, tm_min=43, tm_sec=23, tm_wday=2, tm_yday=67, tm_isdst=0)
>>> time.localtime(os.path.getatime('D:\\各种视频\\Python\\学习笔记\\test_1.py')) #北京标准时间
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=8, tm_hour=14, tm_min=43, tm_sec=23, tm_wday=2, tm_yday=67, tm_isdst=0)
>>> os.path.ismount('E:\\') #判断是否为挂载点(可以理解为是否为Windows的分区盘,linux中的磁盘文件系统的入口目录)
True
>>> os.path.ismount('E:\\A')
False
>>>

【Pyton】【小甲鱼】文件的更多相关文章

  1. 【Pyton】【小甲鱼】异常处理:你不可能总是对的

    Exception 1.assertionerror举例 >>> my_list=['小甲鱼是帅哥'] >>> assert len(my_list)>0 & ...

  2. 【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜

    pickle(泡菜): picking:将对象转换为二进制 unpicking:将二进制转换为对象 1 >>> import pickle 2 #picking:对象导入到文件中(二 ...

  3. 【Pyton】【小甲鱼】类和对象

    一.类 定义一个类,例子如下: class Turtle: #定义一个名为Turtle的类,Python中类型约定以大写字母开头 #属性 color='green' weight=10 legs=4 ...

  4. 小甲鱼PE详解之IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用(PE详解03)

    咱接着往下讲解IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用! (视频教程:http://fishc.com/a/shipin/jiemixilie/) 接着我们来谈谈 IM ...

  5. 小甲鱼PE详解之IMAGE_NT_HEADERS结构定义即各个属性的作用(PE详解02)

    PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称,里边包含着许多PE装载器用到的重要字段.下边小甲鱼将为大家详细讲解哈~ (视频教程:http://fishc.co ...

  6. 小甲鱼第51讲:《__name__="__main__"、搜索路径和包》课后练习题

    测试题: 0. __name__属性指的是在调用该模块的时候调用的函数名称,方便在模块的被调用的时候,模块内部被调用的函数不会被运行. 1. 当模块作为主程序运行的时候,__name__属性的值是“_ ...

  7. 小甲鱼PE详解之基址重定位详解(PE详解10)

    今天有一个朋友发短消息问我说“老师,为什么PE的格式要讲的这么这么细,这可不是一般的系哦”.其实之所以将PE结构放在解密系列继基础篇之后讲并且尽可能细致的讲,不是因为小甲鱼没事找事做,主要原因是因为P ...

  8. 小甲鱼PE详解之输入表(导出表)详解(PE详解09)

    小甲鱼PE详解之输出表(导出表)详解(PE详解09) 当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导入表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一 ...

  9. 小甲鱼PE详解之输入表(导入表)详解2(PE详解08)

    在此之前,我们已经对这个输入表进行了一些实践和理解,这有助于大家对这个概念更进一步的加深认识.小甲鱼觉得,越是复杂的问题我们应该越是去动手操作它,认识它,这样才容易熟悉它! 在上一节课我们像小鹿一样的 ...

随机推荐

  1. C语言实现字符串IP与整数型IP的相互转换

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h&g ...

  2. django初体验 学习笔记

    django环境搭建     1.安装Python     2.ipython         sudo apt-get install ipython         sudo pip instal ...

  3. listView优化方案

    1.如果自定义适配器,那么在getView方法中要考虑方法传进来的参数contentView是否为null,如果为null就创建contentView并返回,如果不为null则直接使用.在这个方法中尽 ...

  4. JS - url相关

    今天在找获取当前网址除去参数的js方式,结果自己会的竟然只有window.location.href 查到的一篇博文: http://www.cnblogs.com/weiyuxinghuacun/a ...

  5. 《转》Python学习(13)-Python的字符编码

    转自 http://www.cnblogs.com/BeginMan/p/3166363.html 一.字符编码中ASCII.Unicode和UTF-8的区别 点击阅读:http://www.cnbl ...

  6. 【.NetCore学习】ASP.NET Core EF Core2.0 DB First现有数据库自动生成实体Context

    主要参考微软官方文档 https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db Microsoft .NE ...

  7. WP8.1学习系列(第二十四章)——Json解析

    .net已经集成了json解析,类名叫DataContractJsonSerializer DataContractJsonSerializer 类型公开以下成员. 构造函数     名称 说明 Da ...

  8. 【小程序+thinkphp5】 用户登陆,返回第三方session3rd

    服务器环境: centos7   php7.0 准备工作: 注册小程序,并获取 appid .appsecret 下载微信解密算法sdk : https://mp.weixin.qq.com/debu ...

  9. 简单了解如何使用vue-router和vue-resource

    我们先来看看vue-router 1.npm install vue-router --save 2.调用vue-router: 第一种方法: 直接在main.js中调用 import vueRout ...

  10. linux route命令详解

    考试题一:linux下如何添加路由(百度面试题) 以上是原题,老男孩老师翻译成如下3道题. a.如何用命令行方式给linux机器添加一个默认网关,假设网关地址为10.0.0.254? b. 192.1 ...