2013-05-09 75 views
1

我想创造的东西,会Python的增量在一个循环从阵列中拔出

  • 阅读文件
  • 独立以往的东西放在一个阵列
  • 使用数组中的第一个字符串,做东西
  • 完成后回到第二个阵列并做点什么
  • 继续重复这个过程直到数组完成。

到目前为止,我有

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

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

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

我想要它做的(在意见中的要求)

  • 开放计划
  • 有它读我创建的用户名的文本文件
  • 有程序测试每个程序在到底是什么xbox的gamertag查看器链接
  • JSON读取该页面,如果它包含该名称的信息,则返回列表并使用页面上的下一个gamertag。
  • 保持这样做
  • 记录工作并保存到文本文件的所有gamert标记。
  • 退出

在这样做,是我不知道怎么回去的文件,它只是测试的一前一后访问该线,并继续这种模式,直到该文件是完全读出的问题。

+5

欢迎堆栈溢出!看起来你希望我们为你写一些代码。尽管许多用户愿意为遇险的编码人员编写代码,但他们通常只在海报已尝试自行解决问题时才提供帮助。证明这一努力的一个好方法是包含迄今为止编写的代码,示例输入(如果有的话),期望的输出和实际获得的输出(控制台输出,堆栈跟踪,编译器错误 - 无论是适用)。您提供的细节越多,您可能会收到的答案就越多。 – 2013-05-09 14:29:46

+0

所以基本上你想要一个体面的gamertag? – dwerner 2013-05-09 14:55:58

回答

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." 
+0

非常感谢。这正是我正在寻找的。感谢您的注意,我是Python的新手,所以这对我有很大的帮助。 – user2364549 2013-05-10 00:40:19

+0

我将如何实现另一个文件来读入此声明? – user2364549 2013-05-10 01:58:34

+0

读取输入文件的第二或无穷多个,创建文件名和循环通过它的列表,执行我已经为每个文件编写的代码块。确保重新加载当前的代码块。 – 2013-05-10 15:38:36

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()

要将数据写入一个文件,使用类似以下内容:

​​
+0

我明白如何做那部分,除了现在我希望它读取每次输出一行并且每次读取都将其设置为变量并保持切换变量外的每行。 – user2364549 2013-05-09 22:30:39

+0

这就是for循环的作用,我建议你阅读它们。我编写了一个你想要的程序,并将其添加到我自己的答案中。我不知道你是否想要使用和我一样的API,我仍然认为你应该阅读诸如循环这样的控制流语句,因为它们对于用任何语言进行编程都非常重要。 – 2013-05-09 23:24:39