Python 2.7 在Python中附加具有文件名的CSV文件

Python 2.7 在Python中附加具有文件名的CSV文件,python-2.7,append,filenames,concat,Python 2.7,Append,Filenames,Concat,我有一个包含多个CSV文件的目录,其中包含外汇定价历史记录: hist_EUR_CHF.csv hist_EUR_JPY.csv hist_EUR_USD.csv etc..... 我使用以下脚本将所有csv文件合并到一个文件中: import pandas as pd import os files = [f for f in os.listdir('.') if os.path.isfile(f)] merged = [] for f in files: filename, ext

我有一个包含多个CSV文件的目录,其中包含外汇定价历史记录:

hist_EUR_CHF.csv
hist_EUR_JPY.csv
hist_EUR_USD.csv
etc.....
我使用以下脚本将所有csv文件合并到一个文件中:

import pandas as pd
import os
files = [f for f in os.listdir('.') if os.path.isfile(f)]
merged = []
for f in files:
    filename, ext = os.path.splitext(f)
    if ext == '.csv':
        read = pd.read_csv(f)
        merged.append(read)
result = pd.concat(merged)
result.to_csv('_FX_historical.csv')
组合csv文件现在包含日期、打开、高、低和关闭:

Date          Open        High        Low         Close
2018-01-06   1.2032      1.2106      1.1988      1.2033 
2018-01-07   1.2041      1.2067      1.2031      1.2044 
2018-01-06   93.9023     94.0105     93.8832     93.9024 
2018-01-07   93.9671     93.9934     93.9104     93.9672 
我想添加两列来标识数据所表示的外汇对

如何附加文件以添加两列:列和

我的新文件将为:

Date          Open        High        Low         Close    From    To
2018-01-06   1.2032      1.2106      1.1988      1.2033     EUR   USD
2018-01-07   1.2041      1.2067      1.2031      1.2044     EUR   USD
2018-01-06   93.9023     94.0105     93.8832     93.9024    EUR   JPY
2018-01-07   93.9671     93.9934     93.9104     93.9672    EUR   JPY

您可以对第二列执行相同的操作

   fromP = ['EUR2','EUR2','EUR2','EUR2']
   with open('_FX_historical.csv','r') as csvinput:
    with open('a2.csv', 'w') as csvoutput:
        writer = csv.writer(csvoutput, lineterminator='\n')
        reader = csv.reader(csvinput)

        all = []
        row = next(reader)
        row.append('From')
        all.append(row)
        i=0
        for row in reader:
            row.append(fromP[i])
            all.append(row)
            i=i+1
    writer.writerows(all)

Naj meh,我的目录中有很多文件每天都在动态变化。有没有一种方法可以自动附加“发件人”名称而不是硬编码它们?