fly6022
文章12
标签23
分类2
基于Python语言的小项目:Extract From TXT

基于Python语言的小项目:Extract From TXT

✅ 对文本文件具有线性关系的行数对应内容的提取。

基于Python语言. 本脚本文件可以帮助您提取TXT文本文件中具有一定规律的信息.

版本

version 1.0.0

支持的内容

  • 对具有线性关系的行数对应内容的提取(version 1.0.0)

  • linecache

输入格式

1
<TXT文件路径> <首定位行数> <步长数> <循环次数>

样例输入

注:先执行 demo.py,在脚本所在目录生成 demo.txt文件.

1
demo.txt 1 5 5

样例输出

1
2
3
4
5
6
7
8
9
10
11
这是第1行.

这是第6行.

这是第11行.

这是第16行.

这是第21行.

内容共计100行.

源信息

1
2
3
4
5
6
7
# !/usr/bin/python
# -*- coding: utf-8 -*-
# @name : Extract_From_TXT/main.py
# @author : fly6022
# @date : 2022/5/29
# @Email : [email protected]
# @license: MIT

解决问题

若程序报错,则是TXT文件的文本编码不是UTF-8,请尝试将文本编码转为UTF-8.

源代码

main.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# !/usr/bin/python
# -- coding: utf-8 --
# @name : Extract_From_TXT/main.py
# @author : fly6022
# @date : 2022/5/29
# @Email : [email protected]
# @license: MIT

import linecache

filename,p,q,loop=input().split(' ');

p = int(p);

q = int(q);

loop = int(loop);

def main(p,q,loop):

PRINT_OR_LIST = "n"

count = len(open(filename, encoding='UTF-8').readlines())

if int(loop) > count:
count,loop = loop,count

for i in range(p, loop, q):
with open(filename, encoding="UTF-8") as f:
for num, line in enumerate(f):
if num == i-1:
if PRINT_OR_LIST == "Y":
line=line.strip("\n")
list=[]
list.append(line)
print(list)
else:
print(line)
print("内容共计" + str(loop) + "行.")

main(p,q,loop)

demo.py

1
2
3
4
5
6
full_path = 'demo' + '.txt'
file = open(full_path, encoding='UTF-8')

for i in range(1,101,1):
output = ("这是第" + str(i) + "行.\n")
file.write(output)

本文作者:fly6022
本文链接:https://blog.fly6022.fun/posts/%E5%9F%BA%E4%BA%8EPython%E8%AF%AD%E8%A8%80%E7%9A%84%E5%B0%8F%E9%A1%B9%E7%9B%AE%EF%BC%9AExtract%20From%20TXT/
版权声明:除特殊说明以外,本文采用 署名-非商业性使用 4.0 国际 (CC BY-NC 4.0) 协议进行许可,转载请注明原出处。
×