复制文件 - for loop python

时间:2017-03-22 20:39:44

标签: python loops copy

下午好,

我这里有一些代码,用于根据"扇区"将源文件夹中的大约200个csv复制到目标文件夹中。他们属于。他们所属的部门通过" symbolslist"其中包含带有清单列表的csvs。该代码适用于 most 部分,除了它在符号列表中的最终csv中获取代码列表并将所有这些CSV复制到所有目标文件夹中。基本上我需要以某种方式将第一个for循环与它下面的3个for循环相结合,但是我很难做到这一点。非常感谢任何评论。

import os,sys,shutil
import glob 
import pandas as pd

source_dir =  'C:\TS'
dest_dir = 'C:\TS\Combined\Groups\Cross Asset Class'
#dest_dir = 'C:\TS\Combined\copytest'
base = 'C:\TS\Combined\Groups'

dest_dirlist = (base +'/Cross Asset Class', base+'/Bonds', base + '/Commodities', \
        base + '/Countries', base + '/Currencies', base + '/Industry Sectors', base + '/Segments and Styles', \
        base + '/Us Sectors', base + '\Volatilities')
print(dest_dirlist)

symbolslist = (base+'/Cross Asset Class.csv', base+'/Bonds.csv',base+'/Commodities.csv' \
                 ,base+'/Currencies.csv', base+'/Industry Sectors.csv', base+'/Segments and Styles.csv', \
                  base+'/US Sectors.csv')


for file in symbolslist:
    print(file)
    df_symbolslist = pd.read_csv(file)
    print(df_symbolslist)


for ticker_file in glob.glob(os.path.join(source_dir, '*.csv*')):
    for ticker in df_symbolslist['Ticker']:
        print(ticker)
        if ticker in ticker_file:
            for path in dest_dirlist:
                shutil.copy(ticker_file, path)
                print(ticker + ' File Copied')

非常感谢你的时间。

1 个答案:

答案 0 :(得分:0)

如果我理解问题,我认为你应该采用略微不同的方法。您可以创建一个{04},将代码映射到它所属的资产类列表。然后你映射到复制文件。我不认为pandas在这里有帮助 - 你可以使用标准的csv模块逐行构建地图。

我没有测试过这段代码,因为我没有合适的数据集,但考虑这样做:

dict