2014-09-27 17 views
0

我只是有一個快速的問題,不斷打破我的程序。出於某種原因,file.write()只會接受1個字符串或變量,我的問題是否有解決方法?在python中使用file.write()

例如我問是否可以一次寫入多個變量或字符串到一個文件。像這樣但沒有.write(),因爲它不允許你。

file.write("apples: ", numApples, "\n oranges: ", numOranges) 

任何幫助或建議,歡迎!

我現在想到的最好的答案是將它全部轉換成字符串然後發送到文件。

+2

'file.write( 「蘋果」 + str(numApples)+「\ n oranges:」+ str(numOranges))' – DOOM 2014-09-27 18:31:49

回答

3

您可以將所有參數轉換爲字符串並將它們附加在一起。

例如,str(var)會將var轉換爲字符串類型。

你可以簡單地使用str(numApples)等你的情況,並追加他們使用+(字符串連接)運算符。 修改後的代碼看起來像

file.write("apples: " + str(numApples) + "\n oranges: " + str(numOranges))

在這裏你只有一個字符串參數,而不是4

+0

它與我剛剛展示的DOOM相同我必須在.write之前完成,然後在那裏發送新字符串,但我想知道是否有是一種更簡單的方法.... Nevermind Im一個白癡 – Diesel298 2014-09-27 18:39:32

+0

很高興它修復了你的代碼。 :) – venki421 2014-09-27 18:42:48

+0

是的,我仍然有「,」在那裏,而不是「+」。就像我說的那樣愚蠢的錯誤 – Diesel298 2014-09-27 18:47:27

2

你也可以使用格式 - :

file.write("apples: {0}\n oranges: {1}".format(numApples, numOranges)) 

這使您可以靈活爲數字添加格式,這與簡單字符串連接解決方​​案中沒有的格式相同。

+0

你是什麼意思?林仍然是新的python所以我有點困惑。 – Diesel298 2014-09-27 18:48:53

+0

例如,您可以執行諸如'file.write(「apples:{0:5d} \ noranges:{1:4d}」.format(numApples,numOranges))'來排列數字。 – 2014-09-27 18:51:23

0

使用file.writelines,它採用可迭代的字符串,而不是單個字符串。

或者使用print(*args, file=),它會爲你帶上任何東西並調用str()。

0

你需要做一個arguemnt從你的字符串,有辦法很少做到這一點:

  1. 使用STR()使各部分的字符串,然後拼接使用「+」
  2. 使用STR .format
  3. 用漂亮和簡明的舊的語法:

    file.write("apples: %s\noranges:%s" % (numApples, numOranges)) 
    
相關問題