skylark_ 2021-12-03 15:39 采纳率: 100%
浏览 15
已结题

在网上找了段按条件批量读取txt文件某行并汇总的代码,但是能打印出来却没能保存,想知道该怎么保存新文件?

刚接触python,想批量读取txt文件的某行,从网上找了段代码,能成功跑出来,但没有生成汇总好的新文件,部分代码也看不懂,求大神教我怎么保存运行结果至新的txt或者csv,感谢!

import os

def eachFile(filepath):
    pathDir =os.listdir(filepath)        #遍历文件夹中的text
    return pathDir

def readfile(name):
    fopen=open(name, encoding='gb18030')
    for lines in fopen.readlines():         #按行读取text中的内容
        lines = lines.replace("\n", "").split(",")
        if '57511' in str(lines):
           print(lines)
        if '57512' in str(lines):
           print(lines)
        if '57513' in str(lines):
           print(lines)
        if '57514' in str(lines):
           print(lines)
        if '57516' in str(lines):
           print(lines)
    fopen.close()

filePath = "E:/AHYH_data/vis-20200119-0219"
pathDir=eachFile(filePath)
for allDir in pathDir:
    # child = os.path.join('%s%s' % (filepath, allDir))
    child = "E:/AHYH_data/vis-20200119-0219" + '\\' + allDir
    readfile(child)

以下是运行的部分结果

[' 57511 106.45 29.85 240 5.1', '20021922']
[' 57512 106.27 29.97 364 8.6', '20021922']
[' 57513 106.63 29.73 464 9.1', '20021922']
[' 57514 106.22 29.58 331 5.2', '20021922']
[' 57516 106.47 29.58 259 5.3', '20021922']
[' 57511 106.45 29.85 240 4.8', '20021923']
[' 57512 106.27 29.97 364 7.2', '20021923']
[' 57513 106.63 29.73 464 9.1', '20021923']
[' 57514 106.22 29.58 331 6.0', '20021923']
[' 57516 106.47 29.58 259 5.2', '20021923']

img

希望将运行结果保存为新的文件
  • 写回答

1条回答 默认 最新

  • chuifengde 2021-12-03 15:46
    关注

    大概如下:

    
    
    import os
    
    def eachFile(filepath):
        pathDir =os.listdir(filepath)        #遍历文件夹中的text
        return pathDir
    
    def readfile(name):
        content = ''
        fopen=open(name, encoding='gb18030')
        for lines in fopen.readlines():         #按行读取text中的内容
            lines = lines.replace("\n", "").split(",")
            if '57511' in str(lines):
                content += lines + '\n'
                print(lines)
            if '57512' in str(lines):
                content += lines + '\n'
                print(lines)
            if '57513' in str(lines):
                content += lines + '\n'
                print(lines)
            if '57514' in str(lines):
                content += lines + '\n'
                print(lines)
            if '57516' in str(lines):
                content += lines + '\n'
                print(lines)
        fopen.close()
        with open("e:/AHYH_data/visNew.txt",'w', encoding='utf-8') as f :
            f.write(content)
        
    filePath = "E:/AHYH_data/vis-20200119-0219"
    pathDir=eachFile(filePath)
    for allDir in pathDir:
        # child = os.path.join('%s%s' % (filepath, allDir))
        child = "E:/AHYH_data/vis-20200119-0219" + '\\' + allDir
        readfile(child)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月11日
  • 已采纳回答 12月3日
  • 创建了问题 12月3日

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳