我有一个完整路径文件数组,例如:
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中相当新。有人可以帮助我如何创建这样的循环吗?
答案 0 :(得分: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
答案 1 :(得分: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))
可以做一些类似于你需要的事情。