【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)
在此之前,我们已经对这个输入表进行了一些实践和理解,这有助于大家对这个概念更进一步的加深认识.小甲鱼觉得,越是复杂的问题我们应该越是去动手操作它,认识它,这样才容易熟悉它! 在上一节课我们像小鹿一样的 ...
随机推荐
- Elasticsearch 配置同义词
配置近义词 近义词组件已经是elasticsearch自带的了,所以不需要额外安装插件,但是想要让近义词和IK一起使用,就需要配置自己的分析器了. 首先创建近义词文档 在config目录下 mkdir ...
- codeforces水题100道 第二题 Codeforces Beta Round #4 (Div. 2 Only) A. Watermelon (math)
题目链接:http://www.codeforces.com/problemset/problem/4/A题意:一个整数能否表示成两个正偶数的和.C++代码: #include <cstdio& ...
- cp自动创建层级结构的例子
一个拷贝命令的技巧,不仅拷贝文件,而且拷贝目录结构.记录下来. *拷贝的时候,自动创建参数中源文件的路径:#cp --parents parentdir1/parentdir2/sourcefile ...
- Linux下的XAMPP基本配置技巧(设置虚拟主机、添加FTP账户等)
xampp安装好之后就只有一个默认站点及一个默认nobody的ftp账户,这显然不符合我们平时的需求了,那么下面就来讲一下如何设置并管理多个虚拟主机及ftp账户了,至于xampp的安装不在此讨论范围, ...
- x64枚举DPC定时器
@写在前面 不同于x86,x64的DPC是被加密了的.对于x64DPC的兴趣始于我已经流产的scalpel计划.当时问某牛怎么遍历,得到的答案是“500大洋给代码”.真是R了狗了,好歹小哥我 ...
- WP8.1学习系列(第五章)——中心控件Hub或透视控件Pivot交互UX
具有主页菜单(中心或透视控件)的中心应用中心 你可能要设计包含许多功能的应用.当你看着这些功能时,可能会决定将它们整理到独立的区域中.这些区域最终会成为用户要访问的应用的独立部分.你需要设计一个简便的 ...
- 【推荐系统论文笔记】Introduction To Recommender Systems: Algorithms and Evaluation
这篇论文比较短,正如题目所说,主要还是简单地介绍了一下推荐系统的一些算法以及评估的方法. 推荐系统之前是基于关键字信息的过滤系统,后来发展成为协同过滤系统,解决了两个问题:1.通过人工审核去评价那些具 ...
- 关于C#泛型作用的简单说明
泛型:即通过参数化类型来实现在同一份代码上操作多种数据类型.泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用. C#泛型的作用概述 C#泛型赋予了代码更强的类型安全,更 ...
- thinkCMF----调用幻灯片
还是在Common.php上写: /* * slide 获取幻灯片 * 具体使用: <?php $slide = slide();?> <foreach name="sli ...
- 9.3Django
2018-9-3 13:56:18 开始进行Django!!!! 2018-9-3 14:48:25 出去玩去了!!啦啦啦! Django还是很好玩的! 贴上笔记 day60 2018-04-27 1 ...