【问题标题】:How can I read two variables from a txt file that are on the same line? in python如何从同一行的 txt 文件中读取两个变量?在蟒蛇
【发布时间】:2014-11-28 02:52:49
【问题描述】:

假设您有一个基本的 txt 文件,其中包含:

USERNAME(var1):PASSWORD(var2):VAR3
USERNAME(var1):PASSWORD(var2):VAR3
... etc...

我希望能够在我的脚本/代码中将其读取为:

Username = var1
Password = var2
something = var3

然后像这样实现:

username = var1
password = var2
s.login(var1, var2)

file = open(var3, 'r')

我一直在研究大量代码,试图对某些东西进行逆向工程,但效果并不理想。 如果有人能提供一些启示,那就太好了。

我需要自己制作这些列表,所以我可以使用任何我想要的分隔符(,;: 等)。

编辑,这是我迄今为止尝试过的:

all_lines = []

file = open('test.txt', 'r')


for line in file:
    Username,Password,something = line.split(':')
    print(Username,Password,something)

但它给了我以下错误:

  File "test.py", line 8
    print(Username,Password,something)
    ^
IndentationError: unexpected indent

【问题讨论】:

  • 你试过搜索吗?这些不完全是您的问题,但它们可能是了解您应该考虑哪种操作的良好起点:stackoverflow.com/questions/11936967/…stackoverflow.com/questions/17105456/…stackoverflow.com/questions/3277503/…
  • 根据我在帖子中的最后几句话:“我一直在吐槽很多代码,试图对一些东西进行逆向工程,但这并不完全奏效。如果有人能阐明会很棒的。”我肯定已经搜索过信息和起点,但未能创造出有效的东西。我将添加到目前为止我尝试过的内容。
  • 感谢您将这些信息添加到您的问题中;这一点很重要。我确实读过你的最后几句话,但不知道你一直在看的什么或者你最好的尝试是什么样的,没有什么可以“阐明” .例如,我无法知道您收到的是IndentationError
  • 感谢您的澄清,我将在下一个问题中更详细地说明,并确保添加我已经尝试和/或查看过的内容。

标签: python file var readline separator


【解决方案1】:
with open('basic.txt') as f:
    for line in f:
        username, password, filename = line.split(':')
        print(username, password, filename)

【讨论】:

  • 这看起来非常整洁,并且适用于一行,但正如我在上面评论的那样:我已经尝试过了,但它并没有按照我的意愿行事。我有多条线路。每行都有不同的信息需要。例如:每一行都有一个用户名和密码,我希望能够为文件中的每一行登录每个帐户。
  • 如果你尝试一下,你可以看到它会为每一行打印。因此,您只需在循环中执行登录操作,使其适用于文件中的每个登录组合。
  • 正确,我拼写错误。它打印如下: ('usn2', 'pass2', 'List2.txt\n') \n 和 '',符号会导致登录问题,还是不会?
  • @Snowlav 您可以使用filename.strip() 删除前导和尾随空格(\n)。引号不是变量值的一部分,而是由print 语句引起的,所以不用担心。
【解决方案2】:

如果所有行具有相同的格式,您可以将该文件中的一行拆分为您的变量,如下所示:

a_line = "USERNAME(var1):PASSWORD(var2):VAR3"
Username,Password,something = a_line.split(':')

print(Username,Password,something)

结果是:

USERNAME(var1) PASSWORD(var2) VAR3

或者更一般的方式:

all_lines = []

with open('infile.txt','r') as fin:
    all_lines = fin.readlines()


for a_line in all_lines:
    Username,Password,something = a_line.split(':')
    print(Username,Password,something)

【讨论】:

  • 我已经尝试过了,但它并没有达到我想要的效果。我有多条线路。每行都有不同的信息需要。例如:每一行都有一个用户名和密码,我希望能够为文件中的每一行登录每个帐户。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
相关资源
最近更新 更多