1

たとえば、フルパスファイルの配列があります。

a=['/dir1/europe_2013_info.csv', '/dir2/USA_2013_info.csv', '/dir3/Africa_2013_info.csv']

新しいファイルを作成し、この特性をこのファイルに書き込みたいと思います。例えば:

f=open('all.csv','w')
f.write('port,europe\n')
f.close

f=open('all.csv','w')
f.write('port,USA\n')
f.close

など。私はPythonでかなり新しいです。このようなループを作成する方法を教えてもらえますか?

4

2 に答える 2

2

ファイルを何度も開いたり閉じたりする必要はありません。

正規表現/(\w+)_\d{4}(またはより明示的/(\w+)_\d{4}_info\.csv) を使用して、リスト内のファイル パスの必要な部分を抽出し、csv.writerを使用して csv ファイルに書き込みます。

import re
import csv

a = ['/dir1/europe_2013_info.csv', '/dir2/USA_2013_info.csv', '/dir3/Africa_2013_info.csv']

regexp = '/(\w+)_\d{4}'
with open('all.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerows([['port', re.search(regexp, i).group(1)] for i in a])

の内容は次のall.csvようになります。

port,europe
port,USA
port,Africa
于 2013-09-30T19:30:13.143 に答える
1

のように見える

import os.path

b=[os.path.basename(x).split('_')[0] for x in a]
with open('all.csv.', 'w') as f:
    for x in b:
        f.write('port,{0}\n'.format(b))

あなたが必要とするものと同様のことをするかもしれません。

于 2013-09-30T19:37:50.777 に答える