【Pyton】【小甲鱼】文件
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】【小甲鱼】文件的更多相关文章
- 【Pyton】【小甲鱼】异常处理:你不可能总是对的
Exception 1.assertionerror举例 >>> my_list=['小甲鱼是帅哥'] >>> assert len(my_list)>0 & ...
- 【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
pickle(泡菜): picking:将对象转换为二进制 unpicking:将二进制转换为对象 1 >>> import pickle 2 #picking:对象导入到文件中(二 ...
- 【Pyton】【小甲鱼】类和对象
一.类 定义一个类,例子如下: class Turtle: #定义一个名为Turtle的类,Python中类型约定以大写字母开头 #属性 color='green' weight=10 legs=4 ...
- 小甲鱼PE详解之IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用(PE详解03)
咱接着往下讲解IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用! (视频教程:http://fishc.com/a/shipin/jiemixilie/) 接着我们来谈谈 IM ...
- 小甲鱼PE详解之IMAGE_NT_HEADERS结构定义即各个属性的作用(PE详解02)
PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称,里边包含着许多PE装载器用到的重要字段.下边小甲鱼将为大家详细讲解哈~ (视频教程:http://fishc.co ...
- 小甲鱼第51讲:《__name__="__main__"、搜索路径和包》课后练习题
测试题: 0. __name__属性指的是在调用该模块的时候调用的函数名称,方便在模块的被调用的时候,模块内部被调用的函数不会被运行. 1. 当模块作为主程序运行的时候,__name__属性的值是“_ ...
- 小甲鱼PE详解之基址重定位详解(PE详解10)
今天有一个朋友发短消息问我说“老师,为什么PE的格式要讲的这么这么细,这可不是一般的系哦”.其实之所以将PE结构放在解密系列继基础篇之后讲并且尽可能细致的讲,不是因为小甲鱼没事找事做,主要原因是因为P ...
- 小甲鱼PE详解之输入表(导出表)详解(PE详解09)
小甲鱼PE详解之输出表(导出表)详解(PE详解09) 当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导入表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一 ...
- 小甲鱼PE详解之输入表(导入表)详解2(PE详解08)
在此之前,我们已经对这个输入表进行了一些实践和理解,这有助于大家对这个概念更进一步的加深认识.小甲鱼觉得,越是复杂的问题我们应该越是去动手操作它,认识它,这样才容易熟悉它! 在上一节课我们像小鹿一样的 ...
随机推荐
- Oracle的闪回技术--闪回已删除的表
注意闪回技术只能保护非系统表决空间中的表,而且表空间必须本地管理, 外键将不可以被恢复, 索引和约束的名字将会被命名为以BIN开头,由系统生成的名字 查看是否开启闪回: SQL> show pa ...
- 使用IEDA新建jsp项目以后使用javax.servlet.*报错
新建一个jsp项目,然后再里面配置完了一切写了一个servlet的文件: 点击运行的时候出现了javax程序包不存在的错误,百度了许多都在说是tomcat的事情,吧tomcat/lib下面的servl ...
- x64枚举DPC定时器
@写在前面 不同于x86,x64的DPC是被加密了的.对于x64DPC的兴趣始于我已经流产的scalpel计划.当时问某牛怎么遍历,得到的答案是“500大洋给代码”.真是R了狗了,好歹小哥我 ...
- select选择option时触发的click事件google不兼容问题
原先的方式,下面代码编写的问题在google浏览器下是触发不了click事件的,具体缘由不清楚,反正都可以概括为不兼容了 碰到问题时,百度到的一篇解决:http://blog.163.com/rihu ...
- thinkphp3.2 实现点击图片或文字进入内容页
首先要先把页面渲染出来,http://www.mmkb.com/weixiang/index/index.html <div class="main3 mt"> < ...
- Esper学习之七:EPL语法(三)
1.Aggregation 和SQL一样,EPL也有Aggregation,即聚合函数.语法如下: aggregate_function([all|distinct] expression) aggr ...
- 本版本延续MVC中的统一验证机制~续的这篇文章,本篇主要是对验证基类的扩展和改善(转)
本版本延续MVC中的统一验证机制~续的这篇文章,本篇主要是对验证基类的扩展和改善 namespace Web.Mvc.Extensions { #region 验证基类 /// <summary ...
- Android手机端抓包方法
抓包准备 1. Android手机需要先获得root权限.一种是否获得root权限的检验方法:安装并打开终端模拟器(可通过安卓市场等渠道获得).在终端模拟器界面输入su并回车,若报错则说明未root, ...
- [原]secureCRT 改变显示宽度
1.首先全局设置:Options - Global Options - Terminal - Appearance - Maximumcolumns 最大只能设置成1024(推荐256),设置越大越占 ...
- powerDesigner根据sql脚本来逆向生成pdm等模型
一.问题概述 网上一般的博文都是说要建立数据源的方式来逆向或者正向. 我这人比较懒得折腾,更喜欢通过sql脚本的方式来做. 二.步骤 File-->New Model--> 然后: 注意上 ...