2016-05-19 15 views
0

内部で同じデータシーケンスを持つ3つのファイルを開く方法と、これらのファイルデータはすべてループ内で実行する必要があります。そのループはファイル内の値を取得します。まず最初のファイルデータを読み込み、次に2番目のファイルと3番目のファイルデータを読み込みます。どのようにこの作品は私の既存のコードで行うことができます...Pythonのループで3つのファイルを開く方法

def memberStatus(): 
inputFile = open('Members.txt', 'r') 
inputFile = open('Members1.txt', 'r') 
inputFile = open('Members2.txt', 'r') 
with inputFile as myFile: 
    for number, line in enumerate(myFile): 
     line=(line.rstrip()).split() 
     rawList=[] 
     rawList.append(line) 
     print("raw list : ", rawList) 
     intLine1 = [str(elem) for elem in rawList] 
     intLine1 = ''.join(intLine1) 
     AgeItem = intLine1[2:4] 
     winLoosItem = intLine1[8:9] 
     logInItem = intLine1[13:16] 
     GenderItem = intLine1[20:26] 
     incomeItem = intLine1[30:33] 

These're "のmyFileなどで、inputFileと:" 内部で実行する必要があり三つのファイルのループ

  • Members.txt
  • Members1それを行うと.txtの
  • Members2.txt

答えて

2

inputFile = open('Members.txt', 'r') 
inputFile = open('Members1.txt', 'r') 
inputFile = open('Members2.txt', 'r') 

毎回inputFileという名前を別のファイルに再割り当てするだけです。

たとえば、ファイル名をリストに入れてリストを反復するなど、さまざまな方法が考えられます。

inputFiles = ['Members.txt', 'Members1.txt', 'Members2.txt'] 
for membersFile in inputFiles: 
    myFile = open(membersFile, 'r') 
    # And rest of code goes in here. 
    myFile.close() 

編集:

inputFiles = ['Members.txt', 'Members1.txt', 'Members2.txt'] 
for membersFile in inputFiles: 
    with open(membersFile, 'r') as myFile: 
     # And rest of code goes in here. 
: @SergeBallestaが、それは使用することは非常に便利で簡単ですし、この例では、それはこのことを希望として普段はなく、ファイルに対する操作のための withステートメントを使用することを右です

彼と彼の目にとってより便利に思える人は、おそらく自分自身で決めるべきです。 myFileとしてオープン(membersFile、R「」)との

+1

':'少なくとも次処理しようとの間で、各ファイルのクリーンクローズを確実にするでしょう... –

+1

@SergeBallesta確かに、しかし、あなたがしなければならないすべてはあります反復の終わりに 'close'メソッドを使い、' with'ステートメントを使って追加のインデントレベルを作成し、読みやすさを犠牲にすることは、そのような単純なケースでは本当に価値がありません。 –

+0

ありがとう@Peter Nimrootそれは仕事..そして私は私がその単純な解決に気付かなかったように私はとても愚かだと感じています。ありがとうございました – user1641688

2
def memberStatus(): 
    for name in ['Members.txt', 'Members1.txt', 'Members2.txt']: 
    with open(name, 'r') as myFile: 
     # do stuff 
関連する問題