2017-03-20 18 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.pklまたはAAPL_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)))) 

これにより、上記と同じ結果が得られます。ファイルの名前をつけているときに、株式名の間に '_'を入れる方法がわかりません。

ありがとうございました。

EDIT:

AAPL_ _OPK_ _GOOGL_の結果タプル

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

再非常に強力なツールであるように思わです私は自分がしようとしていることをすることが可能だと感じていますが、正しいアンカー/改造者を見つけることはできません。

答えて

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

関連する問題