文档章节

Learning Python 013 按行读取文件(逐行读取) --- 按行写入文件(逐行写入) --- 实战:从字幕文件中提取字幕内容

Airship
 Airship
发布于 2017/12/17 22:50
字数 903
阅读 66
收藏 0

使用的开发集成环境:PyCharm 2016.1.4 
使用的Python的版本:python 2.7.10

知识点:Python 按行读取文件

读取整个文件的内容

f = open('filename.txt', 'r')
text = f.read()
f.close()

print text

读取一行的内容(按行读文件的内容)

参考网站:

Python逐行读取文件内容 
http://www.cnblogs.com/sysuoyj/archive/2012/03/14/2395789.html

f = open('filename.txt', 'r')

while 1:
    line = f.readline()
    if not line:
        break
    print text
    pass

f.close()

缺点:它依赖于前后文的关系,所以不能获取指定行的内容。

读取一行的内容 和 行号

参考网站:

python读取文件同时输出行号和内容 
http://outofmemory.cn/code-snippet/3222/python-duqu-file-tongshi-output-xinghao-content

f = open('filename.txt', 'r')
for (num,value) in enumerate(f):
    print "line number", num, "is:", value
f.close()

缺点:虽然这段代码可以获取到指定行的内容,但是,使用enumerate()函数获取指定行内容的代价是:需要对所有依次进行编号,可想运算量之大。

读取指定行的内容

参考网站:

Python 从指定行读取数据 
http://blog.163.com/xiaowei_090513/blog/static/11771835920140251257802

import linecache

num = 20
linecache.getline('filename.txt', num)

优点:读取的是缓存内的数据,速度快,并且代码简单。

知识点:Python 按行写入文件

参考网站:

Python文件读写 
http://cxymrzero.github.io/blog/2015/03/19/python-file/ 
Python读写文件 
http://blog.csdn.net/adupt/article/details/4435615

写一行(新建文件、替换现有文件)

f = open('namefile.txt', 'w')
f.write('the first line: hello world in the new file.\n')
f.write('the sencond line: ')
f.write('this is also the second line.\n')
f.close()

f = open('namefile.txt', 'r')
text = f.read()
f.close()
print text

执行输出:

the first line: hello world in the new file.
the sencond line: this is also the second line.

f = open('namefile.txt', 'w')这段代码的执行:如果有这个namefile.txt文件,那就将现有的namefile.txt文件里面的内容全部自动清空;如果没有这个namefile.txt文件,那就自动新建一个namefile.txt文件。

写一行(在原有文件后面追加写入)

f = open('namefile.txt', 'w+')
f.write('the last line: hello world in the new file.\n')
f.close()

f = open('namefile.txt', 'r')
text = f.read()
f.close()
print text

输出:

the first line: hello world in the new file.
the sencond line: this is also the second line.
the last line: hello world in the new file.

实战:从字幕文件中提取字幕内容

github源代码网址:https://github.com/AoboJaing/youtube-srt-to-txt

如何获取字幕文件

参考网站:https://www.youtube.com/watch?v=d9ctCc2AXCw

视频网站: https://www.youtube.com/

字幕提取网站:http://mo.dbxdb.com/setting.html

设计思路

输入是英文字幕文件和中文字幕文件,输出是英文配中文的txt文件

英文字幕文件

Alt text

中文字幕文件

Alt text

输出:英文配中文的txt文件

Alt text

代码

# coding : utf-8

import linecache

file_srt = open('Servos - working principle and homemade types.srt', 'r')
file_txt = open('newfile.txt', 'w')

cout=1
for (num, value) in enumerate(file_srt):
    if cout == 5:
        cout = 1
    if cout == 3:
        file_txt.write(linecache.getline('en-Servos - working principle and homemade types.srt', num+1))
        file_txt.write(value)
    cout += 1

file_srt.close()
file_txt.close()

运行输出

Youtube subtitles download by mo.dbxdb.com 
Youtube subtitles download by mo.dbxdb.com 
In this video I would like to explain the functionality of servos and how to convert conventional DC motors into homebuilt servos.
在这部影片中,我想解释一下舵机以及如何传统的直流电动机转换成自制伺服系统的功能。 
A servo is a device that produces motion accordant to a command signal from a control system.
伺服是,从一个控制系统产生运动一致来的命令信号的装置。 
Usually an electric motor is used to create a mechanical force and the servomechanism rotates at a velocity that approximates the command signal.
一般的电动机被用来创建一个机械力和伺服机构在近似于指令信号的速度旋转。 
...
...

请访问:http://www.aobosir.com/

本文转载自:http://blog.csdn.net/github_35160620/article/details/53210228

共有 人打赏支持
Airship
粉丝 40
博文 965
码字总数 20029
作品 0
南京
高级程序员
私信 提问
C#读取文本文件和C# 写文本文件

C#读取文本文件 今天一个学生问我如何从一个文本中读取内容,如下是做的是控制台中的例子,在别的地方也是这个道理。 // 读操作 public static void Read() { // 读取文件的源路径及其读取流...

长平狐
2013/01/06
205
0
日志文件分析:将包含不同关键字的行写入到不同的文件

日志文件分析,找出包含关键字的行,并写入到新的文件中; 逐行匹配,关键字可以同时传入多个(使用“|”分割),也可以一行匹配多个关键字(使用&分割) 例如: > analysislog java|python&...

铂金小羊
2013/01/10
596
11
Python基础:文件的操作

一、python可以在不导入任何模块的情况下对文件完成读、写、追加,替换(稍复杂)。 二、打开文件: 1、f = open('text.txt') 这种方式打开,操作完后需要使用f.colse()关闭。 2、with open...

yishijing
2017/11/20
0
0
Learn Python3:IO操作

一、读文件 1、读取整个文件 准备好一个非空的txt文件 在和中,文件路径中使用斜杠(),在Windows中,文件路径中使用反斜杠(),但是为了防止反斜杠和后边跟的字母发生转义,建议在路径前加...

Othershe
2017/11/20
0
0
Python处理csv、xlsx、pdf

一、csv文件的处理 CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看。由于是纯文本,任何编辑器也都可打开。与 Excel 文件不同,CSV 文件中: 值没有类型,所有值都是字符串 ...

blackfoxya
2018/06/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于360插件化Replugin 2.3.1版本的AS配置解决方案

编译错误:No signature of method: com.android.build.gradle.internal.scope.VariantScopeImpl.getMergeAssetsTask() is applicable for argument types: () values: [] 解决方案:加入热心......

Gemini-Lin
37分钟前
1
0
大数据全系技术概览

什么是大数据? 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增...

董黎明
56分钟前
12
0
阿里巴巴微服务开源项目盘点(持续更新)

大前端、微服务、数据库、更多精彩,尽在开发者分会场 【Apache Dubbo】 Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,是国内影响力最大、使用最广泛的开源服务框架之一,它提供了...

阿里云官方博客
56分钟前
1
0
轻松掌握!一文教你用CloudBoot批量安装RancherOS

RancherOS是Rancher Labs设计的小巧、专用的容器操作系统。本文详细介绍了如何使用CloudBoot简单批量安装RancherOS。 作者简介 赵安家,山东顺能网络全栈研发工程师。前端后端通吃,DevOps、...

RancherLabs
今天
2
0
springmvc源码解析MvcNamespaceHandler之视图配置器和跨域配置

说在前面 本次主要介绍springmvc配置解析<mvc:freemarker-configurer/>、<mvc:velocity-configurer/>、 <mvc:cors>。关注“天河聊技术”更多中间件源码解析。 springmvc配置解析 本次介绍Mvc......

天河2018
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部