2016-07-20 6 views
1

各繰り返しで改行を書いてもうまくいきませんが、うまくいきません。私はランダムな文字列を関数getUser()とgetFriends()を使ってabc.txtから読み込みます。そして、テキストファイルnew_file.txtで書いたが、それは各反復pythonを使用して各繰り返しでテキストファイルに改行を書き込む

出力の最初の行に書いている:[ 'Larina'] [ 'Oormi'、 'Palky'] [ 'Kavia'] [ 'Chakradhari'、 'C​​hunni' ]私はこの形式で必要

[ 'Larina'] [ 'Oormi'、 'Palky']

[ 'Kavia'] [ 'Chakradhari'、 'C​​hunni']

with open("new_file.txt", "wb") as sink: 
     for i in range(0,2): 
      print>>sink, getUser(),getFriends() 
      #print>>sink,("\n") 

def getUser(): 
    with open("abc.txt", "rb") as source: 
     lines = [line.rstrip() for line in source] 
    random_choice = random.sample(lines, 1) 
    source.close() 
    return(random_choice); 
def getFriends(): 
    with open("abc.txt", "rb") as source: 
     lines = source.read().splitlines() 

    random_choice = random.sample(lines, 2) 
    source.close() 
    return(random_choice); 
+0

は再現することはできません。改行は 'print'ステートメントによって追加されます。たぶんあなたは '\ n'を改行として認識せず、' \ r \ n'を期待する悪いテキストエディタを使用していますか? –

答えて

0

閉じる必要はありませんsourcewithステートメントがあなたのためにそれを行います。

は、このコードを試してみてください。

with open("new_file.txt", "wb") as sink: 
     for i in range(0,2): 
      sink.write("%s %s\n" % (str(getUser()), str(getFriends()))) 

def getUser(): 
    with open("abc.txt", "rb") as source: 
     lines = [line.rstrip() for line in source] 
    random_choice = random.sample(lines, 1) 
    return(random_choice); 

def getFriends(): 
    with open("abc.txt", "rb") as source: 
     lines = source.read().splitlines() 
    random_choice = random.sample(lines, 2) 
    return(random_choice) 
関連する問題