用python对文件进行特定行操作
Python #Tools #Dataprocessing
介绍
我们会有一些场景会需要对一些文件的某些行进行操作,比如删除、增加、修改一些字段。我自己的需求是,本网站的所有博客会有一些font matter
字段,我需要将这些字段删除掉而将字段里面的标题提取出来作为标题。如下图所示
1 | --- |
这是本片笔记的font matter
,因此我们需要首先读取掉两个---
,之后的就是我们的正文。另外还需要将title:
后面的字段提取出来。作为第一行。下面是具体的实现方法
具体实现
如何实现对文件的读取呢?用open函数即可,如下,其中第二个参数r,w,a
分别代表只读、写(覆盖),写(补充)。打开之后,需要用readlines,来依次读取每一行的字符。读取后的字符是一个字符串,用几个if
语句来讲我们要的结果筛选出来就行了。具体实现代码如下
1 | def changetext(filename): |
补充一下,open
函数的使用
1 >open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
而该函数的mode
字,有以下选项,
Character | Meaning |
---|---|
r |
读(默认) |
w |
open for writing, truncating the file first |
x |
打开以进行独占创建,如果文件已经存在则失败 |
a |
打开进行写入,如果存在则追加到文件末尾 |
b |
二进制模式 |
t |
文字模式(默认) |
+ |
打开进行更新(读写) |
readlines
函数的使用
Python文件方法
readline()
使用readline()
读取直到EOF为止,并返回包含这些行的列表。 如果存在可选的sizehint
参数,则读取的总行数大约为sizehint
字节(可能在四舍五入为内部缓冲区大小之后),而不是读取EOF。 仅当立即遇到EOF时,才返回一个空字符串。
而sizehint
为要从文件读取的字节数。下面是一个读取的例子,假设有一个文件foo.txt
1 | This is 1st line |
然后书写如下的python文件test.py
1 | #!/usr/bin/python |
运行之后会有如下的结果
1 | Name of the file: foo.txt |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment