获取多个csv的特定行并写入新的cs

2024-09-29 22:25:01 发布

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

找了个好地方,但找不到我要找的东西。我有一些csv文件通过CFD模拟打印出来。我的python脚本的目标是:

  • 获取每个csv的最后一行
  • 将行添加到新文件中,并将文件名添加到每行的开头

目前我有

if file.endswith(".csv"):

    with open(file, 'r') as f:
        tsrNum = file.translate(None, '.csv')
        print(tsrNum + ', ' + ', '.join(list(csv.reader(f))[-1]))

它将正确的值打印到终端中,但我必须手动将其粘贴到新文件中。在

有人能帮忙做最后一步吗?我对python的语法还不太熟悉,当然在我完成这个CFD项目后的任务清单上,到目前为止,当我能够正确地实现它的时候,它是非常棒的。我尝试使用循环和csv.dictWriter,但收效甚微。在

编辑

我无法使张贴的解决方案发挥作用。这是一个人帮我做的密码

^{pr2}$

Tags: 文件csv脚本目标if文件名as地方
1条回答
网友
1楼 · 发布于 2024-09-29 22:25:01

把你的问题分成小块:

  • 在目录上循环
  • 正在获取最后一行
  • 正在写入新的csv。

我尽量说得很详细,所以你应该试着这样做:

   import os

    def get_last_line_of_this_file(filename):
        with open(filename) as f:
            for line in f:
                pass
            return line

    def get_all_csv_filenames(directory):
        for filename in os.listdir(directory):
            if filename.endswith('.csv'):
                yield filename

    def write_your_new_csv_file(new_filename):
        with open(new_filename, 'w') as writer:
            for filename in get_all_csv_filenames('now the path to your dir'):
                last_line = get_last_line_of_this_file(filename)
                writer.write(filename + ' ' + last_line)

    if __name__ == '__main__':
        write_your_new_csv_file('your_created_filename.csv')

相关问题 更多 >

    热门问题