2014-03-31 63 views
0

我有以下文件(X:\ somepath \ somefile):如何在python 3.x中讀取外部文件中的變量?

# This is a file containing default values 
# It contains variables that users can change 
val_1 = 123 
val_2 = 456 
print(val_1) 

我如何獲得這些變量到Python腳本,看起來像這樣:

@session.defButton('button name') # 3rd party thing 
def stuff(): 
    file_name = 'X:\\somepath\\somefile' 
    exec(open(file_name, 'r').read()) # I used to use execfile(file_name) in 2.4 
    print(val_2) 

它打印val_1但不是val_2。這是錯誤我得到

NameError: global name 'val_2' is not defined 

我如何獲得它之外定義EXEC()函數,還是有更正確的方式來獲得外部文件的變量?我沒有得到全局/本地人在字典中需要的格式。

回答

1

首先請檢查是否val_1得到應有因爲你在它的內容

您也可以嘗試在路徑替換爲正斜槓反斜槓(\\改變運行EXEC印刷的某個文件打印(val_1)語句至/)

+0

val_1獲得打印,但不是val_2。我試過\\和/,仍然沒有改變。 – user2987193

+0

你能否澄清爲什麼print(val_1)在外部文件中並且print(val_2)在腳本中?嘗試將兩者都放在腳本文件中,看看會發生什麼。如果您在兩行上都出現錯誤,則意味着該文件沒有被抓取,或者抓取的文件沒有這些變量分配。您也可以嘗試打印出文件內容,看是否如預期的那樣使用'打開(文件名','r')讀取() – haraprasadj

+0

哦...對不起,我應該更清楚,打印只是爲了用我的真實劇本顯示我遇到的問題的症狀。 真正的問題是變量不存在於exec調用之外。 – user2987193

相關問題