python读取文件夹下所有txt文件的指定行数据,并输出到指定文件内

        有大量仪器数据需要提取出来处理,一个个打开手动复制太麻烦了,于是简单学了一点基础语法,参考了几位大佬的代码思路。

问题描述:需要把图示的框选数据提取出来

提取结果:(将文件名与数据分开是为了后续方便倒入Excel处理) 

1.批量文件格式更换:将仪器生成的文件格式abt转化为txt格式:

# @Time:2022/8/15 23:02
# python批量更换后缀名
import os
import sys
os.chdir(r'/Users/xtall/PycharmProjects/pythonProject1/QIQIHAER copy/错海08/')# 列出当前目录下所有的文件					
files = os.listdir('./')
for fileName in files:
	portion = os.path.splitext(fileName)
	if portion[1] == ".abt":					# 如果后缀是.abt
		newName = portion[0] + ".txt"			#把原文件后缀名改为 txt
		os.rename(fileName, newName)

2.数据提取:

# @Time:2022/8/16 08:53
import os
import fnmatch
import re

path ='/Users/xtall/PycharmProjects/pythonProject1/QIQIHAER copy/富裕12'
# files = os.listdir(path)                              #得到文件夹下所有文件
files = fnmatch.filter(os.listdir(path),'*.txt')        #利用fnmatch筛选文件夹下所有txt文件(用于解决文件夹下DC.store文件的影响)
files.sort()                                            #对所有的文件进行排序

Result_Output_Path = path + '/result_file.txt'             #构造当前文件夹下的结果输出路径
with open(Result_Output_Path,'w') as result_file:       #打开输出结果的文件
    result_file.write(path.split('/')[-2]+path.split('/')[-1]+' 文件数据输出顺序:''\n\n')
    for filename in files:
        result_file.write(filename.split('.')[0]+'\n\n')#讲文件夹下所有文件名称输出到结果文件中(去掉了后缀)
    result_file.close()

for file in files:
    Current_file_path = path + '/' + file               #构造当前所处理文件的路径
    # print(file.split('.')[0])                           #输出所处理文件夹名称(去掉了后缀)

    with open(Current_file_path,'r') as current_file:
        context = current_file.readlines()              #读取所处理文件的所有内容
        current_file.close()
    with open(Result_Output_Path, 'a') as result_file:  # 打开输出结果的文件
        target_line = 0
        for context_line in context:  # 循环遍历所有行的内容
            if context_line.find('DataType=ArbotomData') != -1:
                for i in range(2, 26):  # 定位到数据所在行数区间
                    list = context[target_line + i].split()  # 将字符串划分为列表用于后面数据筛选
                    for j in range(len(list)):
                        num = int(list[j])
                        if num > 100 and num < 3000:  # 筛选传播时间大于100小于3000
                            print(num, end=' ')
                            result_file.write(list[j] + ' ')
                    if i == 3 or i == 14:  # 两侧数据换行
                        print()
                        result_file.write('\n')
            target_line += 1
    result_file.close()




 

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 你可以使用 `os` 模块来读取文件文件名,并使用 `codecs` 模块来将文件名写入 txt 文件。 代码示例如下: ``` import os import codecs # 读取文件文件名 folder = '/path/to/folder' filenames = os.listdir(folder) # 将文件名写入 txt 文件 txt_file = '/path/to/file.txt' with codecs.open(txt_file, 'w', 'utf-8') as f: for filename in filenames: f.write(filename + '\n') ``` 在这个示例文件夹的路径存储在 `folder` 变量txt 文件的路径存储在 `txt_file` 变量。你需要将这些变量替换为你自己的路径。 ### 回答2: 使用Python可以轻松地读取文件的所有文件名,并将其存入一个文本文件。以下是一个实现此功能的示例代码: ```python import os def get_all_filenames(folder_path): filenames = [] for root, dirs, files in os.walk(folder_path): for file in files: filenames.append(file) return filenames def save_filenames_to_txt(filenames, output_path): with open(output_path, 'w') as file: for filename in filenames: file.write(filename + "\n") if __name__ == "__main__": folder_path = "/path/to/folder" # 文件夹的路径 output_path = "/path/to/output.txt" # 输出文件的路径 filenames = get_all_filenames(folder_path) save_filenames_to_txt(filenames, output_path) ``` 在上面的代码,`get_all_filenames`函数用于获取文件的所有文件名,使用了`os.walk`函数遍历文件夹下的所有文件。`save_filenames_to_txt`函数则将文件名保存到指定txt文件,使用了`open`函数以及文件对象的`write`方法。 在主程序,你需要将`folder_path`和`output_path`替换为实际的文件夹路径和文本文件路径。然后运该程序,它将读取文件所有文件文件名,并将它们存储在指定文本文件。 ### 回答3: 可以使用Python的os模块来实现读取文件所有文件名字的功能,并将其存入txt文件。 首先,导入os模块: import os 接下来,定义一个函数,该函数接收文件夹路径作为参数,并将文件所有文件名字存入txt文件: def save_file_names(folder_path): # 获取文件所有文件的名字 file_names = os.listdir(folder_path) # 打开txt文件,使用'w'模式以覆盖方式写入数据 with open('file_names.txt', 'w') as file: # 遍历所有文件名字,并写入txt文件 for name in file_names: file.write(name + '\n') 最后,调用该函数并传入文件夹路径进测试: folder_path = '/path/to/folder' # 替换为自己的文件夹路径 save_file_names(folder_path) 执完成后,会在当前目录生成一个名为file_names.txttxt文件,该文件包含了文件所有文件的名字,每个名字占一。 注意:需要将'/path/to/folder'替换为实际的文件夹路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值