2009-01-29 102 views
2

如何打印下面的代碼.txt文件輸出到一個文本文件

y = '10.1.1.' # /24 network, 
for x in range(255): 
    x += 1 
    print y + str(x) # not happy that it's in string, but how to print it into a.txt 

有複製粘貼,而是寧願嘗試一些更有趣。

+0

你知道你的x = 1什麼都不做? – 2009-01-29 22:49:32

+0

是的,只是匆忙地問第一個問題,雖然不好的一個 – Sander 2009-01-29 22:56:16

回答

6
f = open('myfile.txt', 'w') 
for x in range(255): 
    ip = "10.1.1.%s\n" % str(x) 
    f.write(ip) 
f.close() 
+0

這不會給出所需的結果:write()不會添加換行符,所以最終只有一行輸出。 – mhawke 2009-01-29 23:21:28

3

scriptname.py >> output.txt的

1

什麼是x += 1呢?這似乎是range(255)爲0的解決方法 - 它給出序列0,1,2 ... 254。

range(1,256)會更好地給你你想要的。

的替代其他答案:

NETWORK = '10.1.1' 
f = open('outfile.txt', 'w') 
try: 
    for machine in range(1,256): 
     print >> f, "%s.%s" % (NETWORK, machine) 
finally: 
    f.close() 
0

在Python 3,你可以使用打印功能的關鍵字參數 調用的文件。 「a」的意思是「追加」。

f = open("network.txt", "a") 
for i in range(1, 256): 
    print("10.1.1." + str(i), file=f) 
f.close()