将行数写入文件名

时间:2017-07-28 15:21:31

标签: python

我不知道如何将我的代码更新到我可以将更改行的数量 - 在CSV中 - 写入文件名的级别。

我做了一些有计数和行的东西,但它有任何意义。

有人可以给我一些提示

import csv
import glob
import os

rows = []

for in_csv in glob.glob('C:/code/convert/Image/In/*.csv'):
    print in_csv

    with open(in_csv, 'rb') as f_input:
        reader = csv.reader(f_input)

        try:
            all = []
            row = next(reader)
            row.insert(0, 'l_panoramic')
            all.append(row)

            for k, row in enumerate(reader):
                all.append(['l_panoramic_{:06}'.format(k)] + row)

            name, ext = os.path.splitext(in_csv)

            with open("{}_{}{}".format(name, len(rows), ext), 'wb') as f_output:
                writer = csv.writer(f_output, delimiter = ';')
                writer.writerows(all)
                print  "  {} lines found".format(len(rows))
        except StopIteration as e:
            print "  No lines found"

1 个答案:

答案 0 :(得分:0)

可以使用glob库来创建CSV文件列表。使用splitext()获取现有文件名并将其拆分为文件名和扩展名,然后可以使用format()语句轻松添加行数,如下所示:

import csv
import glob
import os

rows = []

for in_csv in glob.glob('a*.csv'):
    print in_csv

    with open(in_csv, 'rb') as f_input:
        reader = csv.reader(f_input)

        try:
            row = next(reader)
            row.insert(0, 'L_panoramic')
            rows.append(row)

            for k, row in enumerate(reader):
                rows.append(['l_panoramic_{:06}'.format(k)] + row)

            name, ext = os.path.splitext(in_csv)

            with open("{}_{}{}".format(name, len(rows), ext), 'wb') as f_output:        
                writer = csv.writer(f_output, delimiter = ';')
                writer.writerows(rows)
                print  "  {} lines found".format(len(rows))
        except StopIteration as e:
            print "  No lines found"

您已经在创建要写入的行列表,因此一旦完成此列表,您就会知道有多少行。然后,您可以使用添加到名称的行数打开输出文件,并将所有行写入其中。

相关问题