【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)
在此之前,我们已经对这个输入表进行了一些实践和理解,这有助于大家对这个概念更进一步的加深认识.小甲鱼觉得,越是复杂的问题我们应该越是去动手操作它,认识它,这样才容易熟悉它! 在上一节课我们像小鹿一样的 ...
随机推荐
- linux文件和目錄管理的基本命令命令
ls命令 作用:顯示目標列表或目錄的內容 語法:ls[選項][目錄或文件] -a:顯示指定目錄下所有子目錄與文件,包括隱藏文件 -l:顯示文件的詳細信息 -d: 顯示目錄 例:ls -dl cd命令 ...
- 从经典问题来看 Copy 方法
经典面试题:为什么 NSString 类型成员变量的修饰属性用 copy 而不是 strong (或 retain ) ? 在初学 iOS 的时候,可能会被灌输这么一个常识,切记 NSString 的 ...
- 【大数据系列】HDFS初识
一.HDFS介绍 HDFS为了做到可靠性(reliability)创建了多分数据块(data blocks)的复制(replicas),并将它们放置在服务集群的计算节点中(compute nodes) ...
- Maven —— scope 元素的值及其含义
1.compile 缺省值,所属依赖在所有的classpath中可用,同时它们也会被打包(随着项目一起发布). 2.provided 只有当JDK或者某个容器已提供该依赖之后才使用.如servlet. ...
- MFC控件CTabCtrl关联变量
1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,将该控件绑定一个变量 用两种方法: 1 ) 自己定义成员变量 CTabCtr ...
- 写一个自定义的控件接口 C#
以下是我的测试代码:APP_Code/ucInterface.cs /* APP_Code/ucInterface.cs */ /// <summary> /// Summary desc ...
- ubuntu 重启网络方法--通过杀死进程重启网络
重启网络方法(通过杀死进程方式,达到网络重启) zh@zh:~$sudo NetworkManager restart //查看进程idNetworkManager 已正运行(pid 10254)zh ...
- Android7.0 PowerManagerService 之亮灭屏(二) PMS 电源状态管理updatePowerStateLocked()
本篇注意接着上篇[Android7.0 PowerManagerService 之亮灭屏(一)]继续分析量灭屏的流程,这篇主要分析PMS的状态计算和更新流程,也是PMS中最为重要和复杂的一部分电源状态 ...
- ++ fatal error C1083: 无法打开预编译头文件:“.\Debug\router.pch”
一.出现此错误首先检查:stdafx.cpp文件上右键——属性,预编译头选“创建”,其它cpp选“使用”. 二.如果是采用这样的设置,还是有错误,重新生成解决方案,重新调试. 三.实在不行的话,步骤/ ...
- 谷歌浏览器不能正常显示中文,chrome显示汉字问题
用了几年的 chrome但是最近每次升级完flash就出现页面不能正常显示中文的现象. 在一个论坛上发现了处理办法如下: 1. 在谷歌浏览器的地址栏输入 chrome://flags/ 2. 在设置里 ...