博客之旅开始啦~
既然开始写博客,怎能缺少自我介绍呢,哈哈!
我叫大哥哥,是一名python爱好者,我之前是学易语言的,当我接触到python之后,就被python优雅的语法深深所吸引,带着极大的兴趣,慢慢的入门了python,学了python之后,易语言就再没打开过,或许,这就是python的魅力吧~
写博客呢,也是想记录一下平时写过的代码和思路,更多的是,和更多的人互相交流,发现自己的不足,如果大家发现我写的有不对的地方或者有更优雅的写法,请不要吝啬你的建议哇~
python-取指定文件行功能
提取文本中指定的行数----比如提取前10行的文本
代码思路
一.在桌面创建一个:
取指定文件件行文件夹(旧. txt,新.txt)
代码实现:
import os
def makeFild():
#创建文件夹和文本
if not os.path.exists(r'C:\Users\Administrator\Desktop\取指定文件行'):
os.makedirs(r'C:\Users\Administrator\Desktop\取指定文件行')
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt','a') as f:
f.write('')
with open(r'C:\Users\Administrator\Desktop\取指定文件行\新.txt','a') as f:
f.write('')
二,将 旧.txt 中的文本去除:
空行,所有空格,重复文本(去除后 重新写入 旧.txt)
代码实现:
def removeRepetition():
#去除 空行 空格 重复
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt','r') as f:
textList = f.readlines()
textList = [text.strip().replace(' ','') for text in textList if text != '\n' and text != ''] #去除空行 和 所有空格
print('-' * 10,'详细信息','-' * 10)
print('总数:',len(textList))
unRepetitionTextList = list()
for text in textList: #去除重复文本
if text not in unRepetitionTextList:
unRepetitionTextList.append(text)
print('去重:',len(textList)-len(unRepetitionTextList))
print('剩余:',len(unRepetitionTextList))
print('-' * 10,'详细信息','-' * 10)
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt', 'w') as f: #写入去重后的文本
for text in unRepetitionTextList:
f.write(text+'\n')
三:提取需要的文本行数,并将提取到的文本写入 新.txt
代码实现:
def extractText():
#提取文本
lineNum = int(input('提取行数: '))
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt','r') as f:
textList = f.readlines()
if textList:
with open(r'C:\Users\Administrator\Desktop\取指定文件行\新.txt', 'w') as f:
for _ in range(lineNum): # 提取输入的行数
f.write(textList.pop(0))
print('剩余总数:',len(textList))
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt', 'w') as f:
for text in textList:
f.write(text)
print('ok~')
input('按下回车键结束程序...')
完整代码实现:
#-*- coding = utf-8 -*-
#@Time : 2021/1/16
#@Author : 大哥哥
#@File : 取指定文件行.py
import os
def makeFild():
#创建文件夹和文本
if not os.path.exists(r'C:\Users\Administrator\Desktop\取指定文件行'):
os.makedirs(r'C:\Users\Administrator\Desktop\取指定文件行')
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt','a') as f:
f.write('')
with open(r'C:\Users\Administrator\Desktop\取指定文件行\新.txt','a') as f:
f.write('')
def removeRepetition():
#去除 空行 空格 重复
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt','r') as f:
textList = f.readlines()
textList = [text.strip().replace(' ','') for text in textList if text != '\n' and text != ''] #去除空行 和 所有空格
print('-' * 10,'详细信息','-' * 10)
print('总数:',len(textList))
unRepetitionTextList = list()
for text in textList: #去除重复文本
if text not in unRepetitionTextList:
unRepetitionTextList.append(text)
print('去重:',len(textList)-len(unRepetitionTextList))
print('剩余:',len(unRepetitionTextList))
print('-' * 10,'详细信息','-' * 10)
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt', 'w') as f: #写入去重后的文本
for text in unRepetitionTextList:
f.write(text+'\n')
def extractText():
#提取文本
lineNum = int(input('提取行数: '))
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt','r') as f:
textList = f.readlines()
if textList:
with open(r'C:\Users\Administrator\Desktop\取指定文件行\新.txt', 'w') as f:
for _ in range(lineNum): # 提取输入的行数
f.write(textList.pop(0))
print('剩余总数:',len(textList))
with open(r'C:\Users\Administrator\Desktop\取指定文件行\旧.txt', 'w') as f:
for text in textList:
f.write(text)
print('ok~')
input('按下回车键结束程序...')
if __name__ == '__main__':
makeFild()
removeRepetition()
extractText()
如果有更优雅的写法或者更好的建议,欢迎指出~