2015-01-12 112 views
-1

這是我的代碼在輸入上的Python多行

fw = open('input.txt', 'w') 
fw.write(input()) 
fw.close() 
fr = open('input.txt', 'r') 
for y in fr: 
    print(y) 
fr.close() 

當用戶寫入文件。他怎麼能去下一行?

只要我按下回車鍵,它只接受一行,不會進入下一行。

例如: 當運行該代碼,I輸入

1 2 3 4 

的輸出是與輸入相同。 但我希望它寫成

1 
2 
3 
4 
在input.txt的文件

我嘗試了以下,並沒有工作。

  1. fw.write(input() + "\n")
  2. fw.write(input("\n")

回答

1

每當我按下回車鍵只接受一行,並不會轉到下一行。

是的,input只需要1行作爲輸入。

你要麼可以使用loop直到某個給出響應,或者使用split分裂您的輸入,然後寫上一個新行列表中的每個項目:

fw.write('\n'.join(input().split(' '))) 

userInput = input() 
for line in userInput.split(' '): 
    fw.write(line) 
+0

中,你可以使用'.split()'而不是'.split('')'來允許任意的空格,比如製表符(''\ t'')。您應該在第二個代碼示例中附加''\ n''或使用'print(line,file = fw)' – jfs

2

你需要一個循環。試試這個:

fw = open('input.txt', 'w') 
while 1: 
    info = input('enter stop to stop:') 
    if info == 'stop': 
     break 
    fw.write(info) 

fw.close() 
fr = open('input.txt', 'r') 

for y in fr: 
    print(y, end='') 
fr.close() 
+0

你也可以使用'for y'在fr' – fredtantini

1

要打印自己的行中輸入字符串中的每個空格分隔的項目:

print(*input().split(), sep='\n', file=fw)