2017-03-20 133 views
0

动态命名我不知道,如果正确的说法是动态的命名,但我想我的文件名我创建,与股票行情我在我的名单变化。保存文件

stocks_query = ['AAPL','OPK'] #current stocks I have in my list/tuple 
stocks.to_pickle('\\Users\Moondra\MachineLearning\stockPredictor-master\{}.pkl'.format(stocks_query)) #stocks is a dataframe 

得到这样的事情:

['AAPL', 'OPK'].pkl

但我希望它是清洁,并正在寻找 aapl_opk.pklAAPL_OPK.pkl

我用正则表达式,但我打得四处真不知道要完成这个任务。

 re.findall(r'(\w+)', str(stocks_query)) 
stocks.to_pickle('\\Users\Moondra\MachineLearning\stockPredictor-master\{}.pkl'.format(re.findall(r'(\w+)', str(stocks_query)))) 

这产生与上述相同的结果;当我命名我的文件时,我不知道如何将'_'放在股票名称之间。

谢谢。

编辑:

打周围的一些更多的,与元组

stocks_query = ('AAPL', 'OPK', 'GOOGL') 
str(stocks_query) 
>> "('AAPL', 'OPK', 'GOOGL')" , I was able to get this far using `re.sub` 

x =re.compile(r'[)(]') 
y = re.compile(r"[']") 

re.sub(y, '_', re.sub(x, "", str(stocks_query))).replace(',', '') 

这就造成了AAPL_ _OPK_ _GOOGL_

理想的输出是AAPL_OPK_GOOGL

重新似乎是一个非常强大的工具,我觉得可以做我想做的事情,但我找不到合适的锚/修改者。

回答

1

尝试以下操作:

stocks_query = ['AAPL', 'OPK', 'GOOGL'] 
filename = '_'.join(stock_query) 
stocks.to_pickle('\\Users\Moondra\MachineLearning\stockPredictor-master\{}.pkl'.format(filename)) 
+0

哇,这似乎完美地等简单工作。我会稍微玩一下,确保没有问题。 – Moondra

+0

似乎很好。非常感谢。 – Moondra