2016-12-10 18 views
0

私の問題は、xml.etreeを使わずに手動でXMLタグを取り除く単純なtxtファイルを取っていることです。私はそれをすべてやったが、私が新しいファイルに情報を書き込むために行くとき。私は2つの問題を抱えています。ファイルに情報を一定のフォーマットでx回書き込む

  1. 情報を特定のフォーマットで必要な回数だけファイルに収めるために書き込む方法がわかりません。

だから今私は最初の人しかできません。 私は何人もの人をしたいと思っています。

  1. ファイルの数を数える方法についてはわかりません。

私は何らかのカウント方法をやっていると考えました。ちょうどそれを実装する方法が不明です。

だから私のコードは、今どのように見える:

def peopleData(fileName): 
    readFile = open(fileName, "r").read() 
    newFile = input("") 
    writeFile = open(newFile, "w") 
    listA = [] 
    with open(fileName, "r") as file: 
     for tags in file: 
      strippedtags = str(tags.split(">")[1].split("<")[0]) 
      listA.append(strippedtags.strip()) 
    writeFile.write("{} {}, ".format(listA[2], listA[3])) #fname, lname 
    writeFile.write("He is {} years old. ".format(listA[4])) #age 
    writeFile.write("He went to {}.".format(listA[5])+"\n") #school 
    writeFile.close 

私は機能を実行すると、私は最初の人の情報を取得し、それは私がそれをしたい正確にどのようです。

"Travis Anderson. He is 24 years old. He went to Nebraska." 

しかし、私は彼らが最初の人が同じように書かれるようにする方法を知らない人の残りの部分。このような。

"Travis Anderson. He is 24 years old. He went to Nebraska." 
"James Kritten. He is 23 years old. He went to Texas State." 
"Kaine Allen. He is 27 years old. He went to Michigan State." 

私はある種のループが必要だと思うが、どこから始めるべきかわからない。

答えて

0

人あたりのタグの一定の数がある場合(のは5としましょう)私は、次のことをお勧めします:

def peopleData(fileName): 
    newFile = input("") 
    listA = [] 
    counter = 0 
    with open(fileName, "r") as file, open(newFile, "w") as writeFile: 
     for tags in file: 
      strippedtags = str(tags.split(">")[1].split("<")[0]).strip() 
      listA.append(strippedtags) 
      if counter % 5 == 0: 
       writeFile.write("{} {}, ".format(listA[2], listA[3])) #fname, lname 
       writeFile.write("He is {} years old. ".format(listA[4])) #age 
       writeFile.write("He went to {}.".format(listA[5])+"\n") #school 
       listA = [] 
      counter+=1 
関連する問題