美文网首页
处理文本数据

处理文本数据

作者: Canon_2020 | 来源:发表于2020-04-20 09:38 被阅读0次
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-01-05 16:12:27
# @Author  : Your Name (you@example.org)
# @Link    : http://example.org
# @Version : 3.6.1

import fileinput
import linecache


def delete_firstline(file_path):
    """
    删除文本的第一行数据

    Args:
        path: 文件的绝对路径
    """
    # 用linecache读取文件内容 (1G大小的文件,效率还可以), 每一行为列表中的一个元素
    line_str = linecache.getlines(file_path)
    # 加上参数inplace=1, 则会直接操作文件
    line_object = fileinput.input(file_path, inplace=1)
    for line in line_object:
        # 判断是否是第一行或者空行
        if not fileinput.isfirstline() and len(line.split()) != 0:
            # filelineno() 返回当前读取的行的行号
            if fileinput.filelineno() == len(line_str):
                print(line.replace('\n', ''), end='')
            else:
                print(line.replace('\n', ''))
    fileinput.close()


def delete_lines(file_path, num):
    """
    删除文本的多行数据

    Args:
        path: 文件的绝对路径
    """
    # 用linecache读取文件内容 (1G大小的文件,效率还可以), 每一行为列表中的一个元素
    line_str = linecache.getlines(file_path)
    # 加上参数inplace=1, 则会直接操作文件
    line_object = fileinput.input(file_path, inplace=1)
    for line in line_object:
        if fileinput.filelineno() > num and len(line.split()) != 0:
            if fileinput.filelineno() == len(line_str):
                print(line.replace('\n', ''), end='')
            else:
                print(line.replace('\n', ''))
    fileinput.close()


def query_firstline(file_path):
    """
    查询文本的第一行数据

    Args:
        path: 文件的绝对路径
    """
    line_object = fileinput.input(file_path)
    first_value = ''
    for line in line_object:
        if fileinput.isfirstline():
            first_value = line
            if len(fileinput.filename().split('-')) >= 2:
                print(fileinput.filename().split('-')[-2] + ':  ' + first_value.replace('\n', ''))
            else:
                print(fileinput.filename().replace('\\', '/').split('/')[-1] + ':  ' + first_value.replace('\n', ''))
    fileinput.close()


def query_lines(file_path, num):
    """
    查询文本的多行数据

    Args:
        path: 文件的绝对路径
    """
    line_object = fileinput.input(file_path)
    first_value = ''
    for line in line_object:
        if fileinput.lineno() <= num:
            first_value = line
            if len(fileinput.filename().split('-')) >= 2:
                print(fileinput.filename().split('-')[-2] + ':  ' + first_value.replace('\n', ''))
            else:
                print(fileinput.filename().replace('\\', '/').split('/')[-1] + ':  ' + first_value.replace('\n', ''))
    fileinput.close()


def test():
    path = 'E:/TaiheiotProject/TestingDocument/Jmeter/csv/Saas平台-1.17版本优化功能'
    files = ['/吉林单品抽奖/JL20180127001-长白山(本色)(盒)-吉林.txt',
             '/吉林单品抽奖/JL20180127002-长白山(心归)(盒)-吉林.txt',
             '/吉林单品抽奖/JL20180127003-长白山(记忆.1999)(盒)-吉林.txt',
             '/吉林单品抽奖/JL20180127004-长白山(777)(盒)-吉林.txt',
             '/吉林单品抽奖/JL20180127005-长白山(福袋)-吉林.txt',
             '/吉林单品抽奖/JL20180127006-长白山(软红)(条)-吉林.txt',
             '/陕西天赋细支/SX20180127002-别动我的-天赋细支-陕西.txt',
             '/陕西延安/SX20180127001-别动我的-延安1935-陕西.txt',
             '/陕西招财猫1600/SX20180127003-别动我的-招财猫-陕西.txt'
             ]

    for file in files:
        file_path = path + file
        query_firstline(file_path)
        # delete_firstline(file_path)
        # query_lines(file_path, 5)
        # delete_lines(file_path, 5)


if __name__ == '__main__':
    test()

相关文章

  • 使用word2vec训练中文词向量

    一、文本处理流程 通常我们文本处理流程如下: 1 对文本数据进行预处理:数据预处理,包括简繁体转换,去除xml符...

  • Linux命令

    AWK - 行文本处理工具 原理: 逐行处理文本数据语法: awk 'pattern + {action}'...

  • 动手学深度学习(八) NLP 文本预处理

    文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常...

  • pytorch之文本预处理,语言模型,循环神经网络基础

    文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常...

  • 第一次打卡 Task02

    一、文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理...

  • 第二天-文本预处理,语言模型,循环神经网络

    文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常...

  • 第二次打卡

    文本预处理文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包...

  • 二. 文本预处理,语言模型,RNN

    1.文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理...

  • 文本挖掘一般流程

    流程 根据研究,得出文本挖掘一般流程包括文本数据采集、文本数据预处理、文本数据分析和文本数据可视化这四个步骤。 (...

  • MySQL 11-12章实操

    第十一章 使用数据处理函数 文本处理函数[常用的文本处理函数说明表] 常用的文本处理函数中locate()和sub...

网友评论

      本文标题:处理文本数据

      本文链接:https://www.haomeiwen.com/subject/gbktwctx.html