从列表中删除\ n被拆分为变量 - Python

时间:2015-07-05 13:48:30

标签: python list replace

所以这是我正在使用的代码:

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
}

所以基本上,我正在尝试读取每一行并将它们存入API变量,而不需要任何额外的东西,比如'\ n'。 OAUTH.txt文件如下所示:

# This is initialization for Twitter OAUTH
with open(curdir + '\OAUTH.txt', 'r') as f:
    words = f.readlines()
    data = [w.replace('\n', '') for w in words]

CONSUMER_KEY = data[0]
CONSUMER_SECRET = data[1]
ACCESS_KEY = data[2]
ACCESS_SECRET = data[3]
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

f.close()

我如何单独使用这些键作为CONSUMER_KEY等变量的输入,而没有其他字符如'\ n'?

非常感谢。

2 个答案:

答案 0 :(得分:1)

编辑:添加您可能无法工作的原因。

  

Environment.NewLine在Windows上解析为\ r \ n,在Unix系统上解析为\ n。

如果路径中出现反斜杠,则表示您正在使用Windows,这意味着\n不是正确的换行符。

解决方案1:

os.linesep

解决方案2:

可能更容易的一个选项是创建具有某种分隔符的文件。例如:

CONSUMER_KEY=45623sdajHJGSQqwdewf
CONSUMER_SECRET=hrjkewrrew892391hnfbndsjhkfb278f93
ACCESS_KEY=hb3278dndlwwoerrewewr
ACCESS_SECRET=r3h278cewwooweoifnccvbdgdhsshdgs

然后你可以拆分分隔符并构造一个字典。

with open(os.path.join(curdir, 'OAUTH.txt')) as f:
  lines = f.readlines()
  # line regex, to test that the line can be split correctly.
  line_regex = re.compile('^\w*[=]{1}\w*$')
  api = { line.split('=')[0]: line.split('=')[1] for line in lines if line_regex.match(line) }

然后您有一个与数据相关的单一数据结构。

答案 1 :(得分:0)

康维德的方式可能很棒,但我很懒。对于像这样的设置文件,我倾向于

settings.py(或者,通常是sekrit.py,因为我在全局.gitignore上有这个)

CONSUMER_KEY="SEKRIT1"
CONSUMER_SECRET="SEKRIT2"
ACCESS_KEY="SEKRIT3"
ACCESS_SECRET="SEKRIT4"

然后当我需要我的秘密时......

import sekrit

sekrit.CONSUMER_KEY

当你可以让python为你做这件事时,为什么还要乱读文件呢?