1

我正在尝试创造一些可以

  • 读取文件
  • 将任何东西分成一个数组
  • 使用数组中的第一个字符串并做一些事情
  • 完成后回到第二个数组做点什么
  • 不断重复这个过程,直到阵列完成。

到目前为止我有

users = open('users.txt', "r")
userL = users.read().splitlines()

我想要它做的是打开文本文件,每个字符串已经分隔 1 行,然后让 Python 部分将其放入数组中,获取第一个字符串并将其设置为变量。从那里,该变量将用于 xbox.com 的 URL。

在它检查之后,我会让一些 JSON 读取页面并查看我拥有的玩家标签列表是否正在被使用,如果它正在被使用,它将返回数组并转到第二个字符串并检查。这需要一个不断检查玩家代号的循环。如果它确实在数组(来自文本文件)中找到了一个未使用的玩家标签,它会将其保存到另一个名为“可用游戏标签”的文本文件中并继续前进。

我想要它做什么(在评论中要求)

  • 开放计划
  • 让它读取我创建的用户名文本文件
  • 让程序测试 Xbox 的玩家代号查看器链接末尾的每个程序
  • JSON 读取页面,如果它包含名称被使用的信息,它会返回列表并使用页面上的下一个玩家代号。
  • 继续这样做
  • 记录所有有效的玩家代号并保存到文本文件中。
  • 出口

这样做的问题是我不知道如何返回文件并访问刚刚测试的行之后的行并继续此模式直到文件被完全读取。

4

2 回答 2

0

为了让您开始,以下代码将按该顺序从头到尾读取整个文件,并单独打印每一行:

with open(r"path/to.file.txt") as fin:
    for line in fin.readlines():
        print(line) # Python 2.7: Use 'print line' instead

如果您需要从每个字符串中删除尾随的新行,请使用.strip().

要将数据写入文件,请使用以下内容:

with open(r"path/to/out/file.txt", "w") as fout:
    fout.writelines(data_to_write)
于 2013-05-09T14:50:16.873 回答
0

使用 for 循环:

with open("users.txt") as f:
    for line in f:
        # do whatever with the line

例如,为了在此处实现您的目标,您可能会执行以下操作:

# import our required modules
import json
import urllib2

# declare some initial variables
input_file = "users.txt"
output_file = "available_tags.txt"
available_tags = [] # an empty list to hold our available gamertags

# open the file
with open(input_file) as input_f:
    # loop through each line
    for line in input_f:
        # strip any new line character from the line
        tag = line.strip()
        # set up our URL and open a connection to the API
        url = "http://360api.chary.us/?gamertag=%s" % tag
        u = urllib2.urlopen(url)
        # load the returned data as a JSON object
        data = json.loads(u.read())
        # check if the gamertag is available
        if not data['GamertagExists']:
            # print it and add it to our list of available tags if so
            print "Tag %s is available." % tag
            available_tags.append(tag)
        else:
            print "Tag %s is not available." % tag #otherwise

# check that we have at least one valid tag to store
if len(available_tags) > 0:
    # open our output file
    with open(output_file, "w") as output_f:
            # loop through our available tags
            for tag in available_tags:
                # write each one to the file
                output_f.write("%s\n" % tag)
else:
    print "No valid tags to be written to output file."
于 2013-05-09T14:53:07.573 回答