从CSV文件中提取最后一行,并将其放在另一个文件名为Python的文件中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从CSV文件中提取最后一行,并将其放在另一个文件名为Python的文件中相关的知识,希望对你有一定的参考价值。

我在目录中有一个CSV文件列表:

file1.csv
file2.csv
file3.csv

文件的示例内容是:

value1  value2  value3
377298  128203  383929
365173  289201  287392

我需要从每个文件中选择最后一行并将其放在另一个CSV中:

files   value1  value2  value3
file1   365173  289201  287392
file2   362829  273829  372910

任何帮助将真的很感激!

答案

使用os模块获取文件名列表,然后将一个初始标题行写入out .csv,然后对于目录中的每个文件,将该文件的最后一行连接到该文件的名称上,并使用制表符作为分隔器。

import os
dir_name = 'the_directory'
with open('the_csv.csv', 'w') as out_handler:
    out_handler.write('\t'.join(['files', 'value1', 'value2', 'value3'])+'\n')
    for file in os.listdir(dir_name):
        with open(os.path.join(dir_name, file)) as in_handler:
            out_handler.write(file[:file.index('.')] + '\t' + in_handler.readlines()[-1])

并进行全面测试:

$ more the_directory/*
::::::::::::::
the_directory/a.csv
::::::::::::::
value1  value2  value3
377298  128203  383929
365173  289201  287392
::::::::::::::
the_directory/b.csv
::::::::::::::
value1  value2  value3
377298  128203  383929
365987  289123  287456
$ python -q
>>> import os
>>> dir_name = 'the_directory'
>>> with open('the_csv.csv', 'w') as out_handler:
...     out_handler.write('\t'.join(['files', 'value1', 'value2', 'value3'])+'\n')
...     for file in os.listdir(dir_name):
...         with open(os.path.join(dir_name, file)) as in_handler:
...             out_handler.write(file + '\t' + in_handler.readlines()[-1])
... 
27
29
29
>>> 
$ cat the_csv.csv 
files   value1  value2  value3
b.csv   365987  289123  287456
a.csv   365173  289201  287392
另一答案

使用glob.iglob查找文件,使用pd.read_csv读取每个文件。

例如,

 import glob
 import pandas as pd
 list_last_values=[]
 for csv in glob.iglob('Path\\*.csv'):
     data=pd.read_csv(csv)
     list_last_values.append(pd.DataFrame(data.loc[len(data)-1,:]).T)

 df_last_values=pd.concat(list_last_values)`

以上是关于从CSV文件中提取最后一行,并将其放在另一个文件名为Python的文件中的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 ADLS Gen2 文件的最后修改日期并将其保存到 python 中的 csv

使用 JMeter,如何从 API 的响应正文中提取字符串并将其保存到 csv 文件?

c_cpp 从一个文件中搜索palindroms并将其按字母顺序放在另一个文件中

从对象 id 中提取日期并将其导出到 mongodb 中的 csv

如何创建SSIS脚本任务以从平面文件中删除CR LF

如何从 csv 文件中提取图像、标签并使用 Torch 创建训练集?