我有一些VB代码试图在Python中复制,但我对Python还不熟悉,它对全局变量的处理让我完全搞不懂。在
我有一个Python脚本(pytSettings),它从文本文件导入文本,并将文本的一部分分配给各种字符串变量。例子。。。在
def main():
strFileS = "/Users/username/Desktop/settings.txt"
fileHandleS = open(strFileS, 'r')
fileContentsS = fileHandleS.readlines()
fileHandleS.close()
strPhotoInclude = fileContentsS[0]
然后,我有第二个脚本(pytBatch),它循环遍历单独文本文件的行,并将每行文本的一部分分配给一组不同的字符串变量。在第二个脚本(pytBatch)中,我需要访问第一个脚本(pytSettings)中的变量。在
更复杂的是,在第二个脚本(pytBatch)的While循环中,我调用了第三个脚本(pytGenerate),它需要从第一个和第二个脚本访问字符串变量。在
^{pr2}$在上面的例子中:
我读了很多关于全局变量的线程,并尝试将全局声明放在任意多个位置,但我无法获得正确的排序。在
提前感谢您的帮助。在
编辑以添加:
好吧。这让我克服了第一个障碍,但是调用第三个文件导致了一个相关的问题。在
在第二个文件中,有一个循环来设置几个全局变量,运行第三个脚本,然后在第二个脚本中循环执行另一个迭代来重置变量,然后重新运行第三个脚本。在
import pytSettings
pytSettings_main()
def main():
'''code that loads the text file omitted'''
global strPhoto
icnt = 0
while icnt < (fileNumLines):
strPhoto = strLineTemp
'''reset photo include to false if photo if no photo filename provided'''
if strPhoto == "NullField":
pytSettings.strPhotoInclude = "FALSE"
else:
pytSettings.strPhotoInclude = "TRUE"
'''call the Generate script'''
pytGenerate.main()
'''iterate to next line of the input text file'''
icnt = icnt +1
我的第三个脚本(pytGenerate)无法从第二个脚本(pytBatch)中找到全局变量,但可以从第一个脚本(pytSettings)中找到它们。在
import pytSettings
import pytBatch
def main():
print pytSettings.strMarginTop '''this works'''
print pytBatch.strPhoto '''this does not'''
尝试引用第二个脚本的全局变量(strPhoto)会导致“'module”没有属性“strPhoto”。在
在函数中,需要先将变量声明为全局变量:
对于多个文件,它本质上是相同的,除了变量也是由文件命名的:
文件1:
^{pr2}$文件2:
相关问题 更多 >
编程相关推荐