一些代码结合txt文件和删除字在开始

2024-09-29 02:19:10 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好

问题是我有一些txt文件,我有脚本把它们放在一起。每个txt文件都从以下位置开始:

Export Type:                        by LAI\GCI\SAI
LAI\GCI\SAI:                        fjdfkj
HLR NUMBER:                         NA
Routing Category:                   NA
Telephone Service:                  NA
Export User Scope:                  Attached & Detached User
Task Name:                          lfl;sfd
Data Type:                          col1/col2
Begin Time of Exporting data:       2019-4-14 19:41
=================================
col1                    col2         
40188e5464645645         54634565754     
401884645645564         54545454564
401087465836453         54545454565     
401885645656567         53434343435
401084569498484         54342340788
401088465836453         56767686334
401439569345656         64545467558
401012993933334         55645342352
401034545566463         34353463464

我想结合刚开始从col1和col2(没有名称的列),但脚本结合他们的话,在开始太多。你能更新这个脚本吗

import fileinput
import glob

file_list = glob.glob("*.txt")

with open('resultfile.txt', 'w') as file:
    input_lines = fileinput.input(file_list)
    file.writelines(input_lines)

另一个问题是我想去掉col2中值开头的5,同时删除所有不是从40108/40188/401088e开始的行。柱子真的很长。我有50-60个txt文件。谢谢你

最后应该是这样的:

40188e464645645         4634565754     
401884645645564         4545454564
401087465836453         4545454565     
401885645656567         3434343435
401084569498484         4342340788
401088465836453         6767686334

Tags: 文件txt脚本inputtypeexportglobfile
2条回答

使用Pandasskiprows跳过前几行:

data = pd.read_csv('file.txt', skiprows=10) 

结果:

       col1                    col2         
0  40188e5464645645        54634565754     
1  401884645645564         54545454564
2  401087465836453         54545454565     
3  401885645656567         53434343435
4  401084569498484         54342340788
5  401088465836453         56767686334
6  401439569345656         64545467558
7  401012993933334         55645342352
8  401034545566463         34353463464

首先按列表中的所有文件循环,然后按行循环,并按startswith和元组筛选字符串:

with open('resultfile.txt', 'w') as file:
    for f in file_list:
        with open(f, 'r') as f1:
            for line in f1:
                if line.startswith(('40108','40188','401088')):
                    file.writelines(line)

相关问题 更多 >