如何从python脚本中仅导入几行?

时间:2014-11-01 03:05:17

标签: python

我正在制作一个Twitter python脚本,我想在几个帐户中使用它。

我的帐户令牌存储在名为twitter_tokens.py的文件中。这是它的内容:

# Account 01 
OAUTH_TOKEN = "aehbrstnfbdtfjhnbw45rjnsdty"
OAUTH_SECRET = "hrbesfdxhbtfgnrstnn"
CONSUMER_KEY = "e vaeior23nrguna564564erugnpnapnbobmna"
CONSUMER_SECRET = "resbsoirnbveioranbkjsrenb"

# Account 02 
OAUTH_TOKEN = "3409gjhr89b4jrngoe"
OAUTH_SECRET = "4w5henrtydjm67rjh34ahy"
CONSUMER_KEY = "45wuhe564e56jmruyfkhmr"
CONSUMER_SECRET = "6ejtydhrsyhet7ulkyftfge4rdyhjt"

# Account 03 
OAUTH_TOKEN = "h487ur6tyrgw45r7u78tkjhes"
OAUTH_SECRET = "srhtrhesrdvm80ej"
CONSUMER_KEY = "f349w0jyg09esmvsrinhmbiwo3am"
CONSUMER_SECRET = "43wg8934ngoilnvqop34ngebvsoerinb"

# Account 04
OAUTH_TOKEN = "vserimgiseomvioq34nmopigb"
OAUTH_SECRET = "resboidfmvzmvmdrgpomrh"
CONSUMER_KEY = "rmes89hfuivsbrldbnau9rgbw5"
CONSUMER_SECRET = "reabsredzbvaerdgma8erionmgbiosrtn"

然后,在我的脚本的顶部,我有这个:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from twitter import Twitter, OAuth, TwitterHTTPError

execfile('twitter_tokens.py') #import tokens

t = Twitter(auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET,
            CONSUMER_KEY, CONSUMER_SECRET))
[...]

上面的代码不会起作用,因为变量会发生冲突。我想要学习的是,让我说我希望我的脚本使用" 帐户01 "。如果我只导入twitter_tokens.py的前5行,则可以正常工作。然后,如果我想在" 帐户02 "上使用该脚本,我可以导入5-11行。

有没有办法在python中执行此操作? 另外,我主要担心的是:这是做我想做的好方法吗?什么是更好的方法来做到这一点?我不想为我拥有的每个Twitter帐户都有一个.py个文件。

感谢。

1 个答案:

答案 0 :(得分:3)

我会使用单个变量帐户和字典内部字典

 accounts = {
        'acc1': {
            'OAUTH_TOKEN': "aehbrstnfbdtfjhnbw45rjnsdty",
            'OAUTH_SECRET': "hrbesfdxhbtfgnrstnn",
            'CONSUMER_KEY': "e vaeior23nrguna564564erugnpnapnbobmna",
            'CONSUMER_SECRET': "resbsoirnbveioranbkjsrenb"
            }
        , 'acc2': {
            'OAUTH_TOKEN': "3409gjhr89b4jrngoe",
            'OAUTH_SECRET': "4w5henrtydjm67rjh34ahy",
            'CONSUMER_KEY': "45wuhe564e56jmruyfkhmr",
            'CONSUMER_SECRET': "6ejtydhrsyhet7ulkyftfge4rdyhjt"
            }
        , 'acc3': {
            'OAUTH_TOKEN': "h487ur6tyrgw45r7u78tkjhes",
            'OAUTH_SECRET': "srhtrhesrdvm80ej",
            'CONSUMER_KEY': "f349w0jyg09esmvsrinhmbiwo3am",
            'CONSUMER_SECRET': "43wg8934ngoilnvqop34ngebvsoerinb"
            }
        }

而不是使用execfile使用import

from config import *

print(accounts['acc1']['OAUTH_TOKEN'])