2016-06-20 57 views
-2

我有一些文件,我想看看,我想標記每個基於一組變量,例如,...python ...創建一個變量作爲文件名傳遞

location = 'home' 
source_system = 'Sys_' 
date = '20160608' 
file_name = location+source_system+date 
print(file_name) 

-> homeSys_20160608 

...基於我想用它來標記數據幀的FILE_NAME,所以像...

file_name = sqlContext.read.parquet(file_path) 

我在其他地方所定義的FILE_PATH。

當我嘗試這樣做時會發生什麼情況是數據框現在被命名爲file_path而不是homeSys_20160608這是變量最初的原因。

有沒有辦法做我想要的?

基本上我想知道是否有一種方法來創建基於變量的數據框架。我想創建多個不同名稱的數據框,以便我可以在一個python筆記本中分析它們。每個數據幀將具有相同的結構,但填充不同的數據。

+1

這是一個壞主意 - 你應該[將數據保留在變量名稱之外](http://nedbatchelder.com/blog/201112/keep_data_out_of_your_variable_names.html)。改用字典。 – MattDMo

回答

0

您正在加入'location + source_system + date',沒有任何文件系統分隔符。

您的字符串看起來就像這樣:homeSys_20160608

你希望它是這樣的,我相信:home/Sys_20160608

您可以手動把一個在像這樣:

file_name = location + '/' + source_system + date 

或者使用os模塊:

file_name = location + os.path.sep + source_system + date 

爲了它可以在Windows和Linux上工作。

+2

使用'os.path.join'也是一個選項,恕我直言更清楚 –

+0

誠然,但我因爲兩個字符串需要直接連接,然後'os.join'ed到第三我雖然這將是更清潔比'filename = os.path.join(位置,source_system +日期)' – Will

相關問題