无法使 execfile() 变量成为全局变量而不是局部变量

2023-12-03

我有这个功能:

#This function loads the tokens for the specified account. If the tokens are not found, it quits the script.
def selectAccountTokens():

global OAUTH_TOKEN
global OAUTH_SECRET
global CONSUMER_KEY
global CONSUMER_SECRET

if args.account == 'acc1':
    execfile('tokens/acc1.py')
    print "Account tokens were successfully loaded."

elif args.account == 'acc2':
    execfile('tokens/acc2.py')
    print "Account tokens were successfully loaded."

elif args.account == 'acc3':
    execfile('tokens/acc3.py')
    print "Account tokens were successfully loaded."

elif args.account == 'acc4':
    execfile('tokens/acc4.py')
    print "Account tokens were successfully loaded."

else:
    print "Account tokens were not found, or the argument is invalid."
    quit()

当我运行它而不使用变量时OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET全球,它失败了。

然后我将它们设为全局变量,但当我运行时仍然如此print OAUTH_TOKEN,它什么也不返回。

我知道我不应该使用全局变量,但我无法找到一种没有全局变量的方法。尽管如此,该函数并未填充变量。

的内容tokens/acc1.py is:

OAUTH_TOKEN = "gaergbaerygh345heb5rstdhb"
OAUTH_SECRET = "gm8934hg9ehrsndz9upnv09w5eng9utrh"
CONSUMER_KEY = "mdfiobnf9xdunb9438gj28-3qjejgrseg"
CONSUMER_SECRET = "esgmiofdpnpirenag8934qn-ewafwefdvzsvdfbf"

global声明不影响环境execfile执行。

明确传递globals()将解决你的问题:

execfile('tokens/acc1.py', globals())

顺便说一句,if .. elif ... elif ..如果你使用的话可以减少字符串格式化运算符% or str.format:

if args in ('acc1', 'acc2', 'acc3', 'acc4'):
    execfile('tokens/%s.py' % args)
    print "Account tokens were successfully loaded."
else:
    print "Account tokens were not found, or the argument is invalid."
    quit()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使 execfile() 变量成为全局变量而不是局部变量 的相关文章

随机推荐

  • 当条件不满足时重置 pandas cumsum [重复]

    这个问题在这里已经有答案了 我经历了不同的 stackoverflow 问题并最终发布它 因为我无法解决我面临的问题之一 我有一个如下所示的数据框 A B C group1 group1 c 12 group1 group1 c 12 gr
  • 从 PostgreSQL 函数运行 Python 脚本

    每次在 PostgreSQL 表上执行更新或插入操作时 我都面临一个 小 问题 该脚本将提取更新或插入的数据并将其写入文件 环境数据 乌班图18 04 仿生海狸 PostgreSQL 10 和 Python 3 6 SELECT FROM
  • MinGW64 无法进行 32 字节堆栈对齐(Windows x64 上的 AVX 所需),轻松解决或切换编译器?

    我正在尝试使用 AVX 指令和 Windows 64 位 我对 g 编译器很满意 所以我一直在使用它 但是 报告了一个大错误here并提出了非常粗略的解决方案here 基本上 m256 变量无法在堆栈上对齐才能与 avx 指令一起正常工作
  • 如何确定OGG文件的长度

    我正在制作节奏游戏 我需要一种快速方法来获取 ogg 文件的长度 我能想到的唯一方法是非常快速地传输文件而不播放它 但如果我有数百首歌曲 这显然是不切实际的 另一种方法是将文件的长度存储在某种属性文件中 但我想避免这种情况 我知道一定有某种
  • 无法在模拟器中启动 AVD:未找到 QT 库

    我是 Android Studio 新手 在使用模拟器时遇到问题 当我尝试运行时 它不断崩溃并显示 无法在模拟器中启动 AVD 6816 错误 android qt qt setup cpp 28 在以下位置找不到 Qt 库 C Users
  • Cocoa Interface Builder 的“属性检查器”类似窗口

    我正在制作一个 Cocoa 应用程序 我想要一个像 Interface Builder 中的 属性检查器 这样的面板 因此 顶部有大标签和可折叠 可展开的组 有谁知道我该怎么做 这是属性检查器的图像 属性检查器 http developer
  • PHP mysqli_fetch_all 给我一个空白屏幕

    我刚刚将一些内容从本地计算机推送到实时站点 但到处都是空白页面 当我使用所有东西时 我将问题追踪到 mysqli fetch all 它为什么要这样做 我该如何解决它 如果我使用 mysqli fetch array 或 mysqli fe
  • 如何在 Flutter 中解码 JSON?

    如何在 Flutter 中解码 JSON 问题很简单 但答案却不简单 至少对我来说是这样 我有一个使用大量 JSON 字符串的项目 基本上 应用程序和服务器之间的整个通信都是通过 JSON 进行的 我一直在使用JSON decode jso
  • 使用 GPUImage 过滤视频

    我在用着GPUImage在我的应用程序中并尝试过滤视频 实时视频过滤效果良好 当我尝试从文件系统将视频读入内存并使用发布在日落湖软件教程页面和 SimpleVideoFileFilter 演示中 EDIT 我意识到我原来的帖子可能没有提出足
  • pop_back()返回值?

    为什么不pop back 有返回值吗 我用谷歌搜索了一下这个问题 发现它可以提高效率 这是标准中如此规定的唯一原因吗 效率与之几乎没有关系 或者实际上没有关系 这个设计的结果是汤姆 卡吉尔的一篇重要论文上世纪 90 年代出版 当时引起了相当
  • Go类型用于函数调用

    关键词如go and defer期待一个函数调用作为参数 是否有可用的类型可以以相同的方式使用 例如 编写一个需要函数调用 而不是函数 作为参数的函数 不 那里没有 你不能对你的函数做同样的事情 go and defer由语言规范支持 并且
  • 授权从 Firebase Cloud Function 访问 Google Cloud Translate?

    我正在尝试编写一个调用 Google Cloud Translate 的 Firebase Cloud Function 我收到此错误 Error 7 PERMISSION DENIED Cloud IAM permission cloud
  • 使用离子和材料设计登录

    我有一个带有侧面菜单等的离子项目 现在我想以简单的方式添加并登录很酷的表单 例如http ionicmaterial com 但问题是我没有看到任何示例如何将其添加到令人兴奋的项目中 它将首先加载登录表单 然后重定向到常规页面 我的项目看起
  • 将一个整数随机分为 n 部分,可能的结果为零

    如何将一个整数随机划分为 n 个部分 且可能的结果为零 最好是R语言 例如 要将整数 5 分成 3 部分并执行 4 次 我可能会得到以下输出 1 4 0 1 2 2 2 1 3 0 2 3 4 1 1 3 Thanks library pa
  • 使用 Pandas 读取列数不规则的 CSV 文件

    我正在尝试读取一个 csv 文件 该文件不包含标题行 并且包含不确定数量的列和 pandas 我已经搜索了如何解决这个问题 但是我找到的所有答案都要求我已经知道 通过打开文件进行搜索 列可以拥有的最大数量并创建一个names 属性上read
  • Kotlin 小型演示 ACCESS_FINE_LOCATION

    改良版 以下代码显示如何访问 ACCESS FINE LOCATION 虽然比我的原始代码长 但它是首选 因为当应用程序暂停或停止时它会停止 GPS 更新 由于 Android Studio 模拟器的问题 它还包括一个简单的看门狗计时器 如
  • ImageSource 在 WPF 中使用数据库中的文件名

    我在 WPF 中有一个矩形 我可以使用以下命令设置它的填充
  • pyodbc.ProgrammingError:没有结果。以前的SQL在一次执行多个语句时不是查询

    我正在处理 sql server 数据库 我有一张名为 table1 包含 1 列和 1 行 exp num 0 我正在尝试更新0将 exp num 列值设置为 1 并返回旧实验和更新后的实验 为此 我使用声明语句 DECLARE Upda
  • python 中的快速 zip 解密

    我有一个使用以下方法处理 zip 文件的程序zipfile 它与一个iterator 因为未压缩的文件大于2GB它可能会成为一个记忆问题 with zipfile Zipfile BytesIO my file as myzip for f
  • 无法使 execfile() 变量成为全局变量而不是局部变量

    我有这个功能 This function loads the tokens for the specified account If the tokens are not found it quits the script def sele