循环浏览多个csv文件,仅将某些列复制到新文件

Smoothjabz

我在一个文件夹中有多个.csv文件(1.csv,2.csv,3.csv等),我需要遍历它们。对于每个现有文件,输出应为一个对应的NEW文件,但每个文件应仅包含2列。

这是csv文件的示例:

004,444.444.444.444,448,11:16 PDT,11-24-15
004,444.444.444.444,107,09:55 PDT,11-25-15
004,444.444.444.444,235,09:45 PDT,11-26-15
004,444.444.444.444,241,11:00 PDT,11-27-15

这是我希望输出看起来的样子:

448,11-24-15
107,11-25-15
235,11-26-15
241,11-27-15

这是我使用Python实现这一目标的尝试:

import csv
import os
import glob

path = '/csvs/'
for infile in glob.glob( os.path.join(path, '*csv') ):


    inputfile = open(infile, 'r') 
    output = os.rename(inputfile + ".out", 'w')

#Extracts the important columns from the .csv into a new file
with open(infile, 'r') as source:
    readr = csv.reader(source)
    with open(output,"w") as result:
        writr = csv.writer(result)
        for r in readr:
            writr.writerow((r[4], r[2]))

仅使用此代码的后半部分,我就可以通过在代码中指定输入文件来获得所需的输出。但是,此Python脚本只是(希望)完全自动化的更大bash脚本的一小部分。

如何调整此脚本的输入以遍历每个文件并仅用2个指定的列创建一个新文件?

请让我知道是否需要澄清。

阿南德·库玛(Anand S Kumar)

inputfile 文件是您打开的文件,但随后您正在执行-

os.rename(inputfile + ".out", 'w')

这不起作用,您正在尝试使用+运算符添加字符串和打开的文件我什至不知道为什么您需要那条线甚至-号线inputfile = open(infile, 'r')您正在with语句中再次打开文件

另一个问题-

  1. 您将路径指定为- path = '/csvs/',则极不可能'csvs'在根目录下有目录。您可能想使用其他相对目录,因此您应该使用相对目录。

你可以做-

path = 'csvs/'
for infile in glob.glob( os.path.join(path, '*csv') ):
    output = infile + '.out'
    with open(infile, 'r') as source:
        readr = csv.reader(source)
        with open(output,"w") as result:
            writr = csv.writer(result)
            for r in readr:
                writr.writerow((r[4], r[2]))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python仅将csv文件的标头复制到新文件中

来自分类Dev

仅在某些字符之后将值从文件复制到新文件

来自分类Dev

将文件名复制到新文件

来自分类Dev

Robocopy仅将更改的文件复制到新文件夹

来自分类Dev

Python-仅将新文件复制到另一个目录

来自分类Dev

将“仅已更改/新文件”复制到不同的目录?

来自分类Dev

当列与文本匹配时,将整行复制到新文件

来自分类Dev

将顺序文件从多个文件夹复制到新文件夹中

来自分类Dev

仅将文本文件复制到R中的新文件夹中

来自分类Dev

在nant脚本中仅将修改后的文件和新文件从源复制到目标

来自分类Dev

如何将文件从列表复制到新文件夹?

来自分类Dev

如何使用Java将文件中的特定行复制到新文件

来自分类Dev

如何将文件从列表复制到新文件夹?

来自分类Dev

如何将hadoop中的大文件的前几行复制到新文件?

来自分类Dev

循环浏览目录中的文件,计算每个目录中的行数,如果少于500行则复制到新文件名

来自分类Dev

使用python仅将更新/新文件从一个文件夹复制到另一个文件夹

来自分类Dev

如何改善将输出APK从Android项目复制到新文件夹的任务?

来自分类Dev

将工作表,代码和按钮复制到新文件

来自分类Dev

Unix Shell-将前300行复制到新文件

来自分类Dev

将电子表格复制到新文件,指定选项卡

来自分类Dev

Unix Shell-将前300行复制到新文件

来自分类Dev

rsync:将更新/新文件复制到不同目录

来自分类Dev

如何将多个文件中的行复制到一个新文件中并保留文件名?

来自分类Dev

比较两个 CSV 文件并找到共同点,然后将两个文件值复制到新文件中

来自分类Dev

将子文件夹中的所有文件复制到新文件夹中

来自分类Dev

如何使用Python将子文件夹和文件复制到新文件夹

来自分类Dev

将文本文件中列出的几个文件复制到新文件夹中

来自分类Dev

Windows批处理文件可将最新文件复制到新文件夹

来自分类Dev

将特定文件复制到新文件夹,同时保留原始子目录树

Related 相关文章

  1. 1

    使用python仅将csv文件的标头复制到新文件中

  2. 2

    仅在某些字符之后将值从文件复制到新文件

  3. 3

    将文件名复制到新文件

  4. 4

    Robocopy仅将更改的文件复制到新文件夹

  5. 5

    Python-仅将新文件复制到另一个目录

  6. 6

    将“仅已更改/新文件”复制到不同的目录?

  7. 7

    当列与文本匹配时,将整行复制到新文件

  8. 8

    将顺序文件从多个文件夹复制到新文件夹中

  9. 9

    仅将文本文件复制到R中的新文件夹中

  10. 10

    在nant脚本中仅将修改后的文件和新文件从源复制到目标

  11. 11

    如何将文件从列表复制到新文件夹?

  12. 12

    如何使用Java将文件中的特定行复制到新文件

  13. 13

    如何将文件从列表复制到新文件夹?

  14. 14

    如何将hadoop中的大文件的前几行复制到新文件?

  15. 15

    循环浏览目录中的文件,计算每个目录中的行数,如果少于500行则复制到新文件名

  16. 16

    使用python仅将更新/新文件从一个文件夹复制到另一个文件夹

  17. 17

    如何改善将输出APK从Android项目复制到新文件夹的任务?

  18. 18

    将工作表,代码和按钮复制到新文件

  19. 19

    Unix Shell-将前300行复制到新文件

  20. 20

    将电子表格复制到新文件,指定选项卡

  21. 21

    Unix Shell-将前300行复制到新文件

  22. 22

    rsync:将更新/新文件复制到不同目录

  23. 23

    如何将多个文件中的行复制到一个新文件中并保留文件名?

  24. 24

    比较两个 CSV 文件并找到共同点,然后将两个文件值复制到新文件中

  25. 25

    将子文件夹中的所有文件复制到新文件夹中

  26. 26

    如何使用Python将子文件夹和文件复制到新文件夹

  27. 27

    将文本文件中列出的几个文件复制到新文件夹中

  28. 28

    Windows批处理文件可将最新文件复制到新文件夹

  29. 29

    将特定文件复制到新文件夹,同时保留原始子目录树

热门标签

归档