gpt4 book ai didi

python - python 匹配txt文件中的字符串并获取它旁边的数字

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:17 26 4
gpt4 key购买 nike

我有一个包含大约 100 个 txt 文件的目录。

这就是我的 txt 文件的样子

...............some text...............
('Doc accuracy ', 0.936046511627907, ' No of corrections ', 11)
http://10.x.x.1/link
...............some text...............
('FinalSpreadSheet_len', 172)
Done processing filename : file1.pdf
Status : success
...............some text...............
<小时/>

在此文档中

    accuracy = 0.936046511627907
url= http://10.x.x.1/link
Status : success
filename : file1.pdf

我有 100 个这样的不同文件。

我想做的是生成包含该列的 excel

filename    accuracy    url    status

对于每个文件,它应该从 .txt 文件获取详细信息并生成 100 个此类文件的 Excel。

我的部分代码(我能够获取目录中的所有文件)

x = [f for f in os.listdir('G:/path/to/directory') if f.endswith('.txt')]

之后,它应该从列表中获取每个文件,找到必要的值并生成 Excel

最佳答案

由于您已经获得了目录中所有文件的列表,并且假设您将名称存储在名为 filenames_list 的列表中,因此此代码将起作用。

对于 filename_list 中的每个 filename,此代码将:

  1. 打开文件
  2. 读取每一行并将其存储在名为lines列表
  3. 对于每一行,它将检查是否存在以下任何一项:'Doc precision''http://' , '完成处理文件名:''状态:'
  4. 如果其中任何一个出现在行中,则对于其中的每一个,程序的行为都会有所不同。

    4.1 如果它找到术语 'http://' ,它会将其存储在名为 url 的变量中;

    4.2 如果它找到'Status :',它会将其值存储在变量status中,等等...

代码:

filename_list = ['file1.txt', 'file2.txt', 'file3.txt', ...]

valuable_data = []
for filename in filename_list:

with open(filename, 'r') as f:
lines=f.readlines()

for l in lines:
if 'Doc accuracy' in l:
acc = l.split(",")[1].strip()
if 'http://' in l:
url = l
if 'Done processing filename :' in l:
fname = l.split(" : ")[1]
if 'Status :' in l:
status = l.split(" : ")[1]

valuable_data.append([fname, acc, url, status])

print(valuable_data)

输出:

[['file1.pdf', '0.936046511627907', 'http://10.x.x.1/link', 'success']]

使用 Pandas 写入 CSV: ( to_csv module )

import pandas as pd

my_df = pd.DataFrame(valuable_data)
my_df.to_csv('csv_output.csv', index=False, header=False)

关于python - python 匹配txt文件中的字符串并获取它旁边的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43344969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com