我在運行在debian服務器上的小型python腳本中遇到了一些問題。Python寫入文件
首先它應該做的:
- 從服務器列表 - >工作
- 轉換爲真正的字符串列表 - >工作
- 寫入文件 - >不做任何事...
已經嘗試在python接口(>>>)中使用相同的代碼,並且它按照它應該的方式寫入所有內容。
文件已經被創建並且獲得了一個chmod 777。
即使檢查如果沒有accidentially那素文字的另一實例正在運行的鎖定文件,但沒有...
任何人有一個想法,爲什麼開始,但在接口時,它不會寫文件?
而現在這裏的腳本本身:
#!/usr/bin/env python
import urllib
import sys
import time
import re
exitNodes = []
readableNodes = []
class BlockTor():
def getListFromWeb(myself):
url = "https://www.dan.me.uk/torlist/"
#url = "file:///E:/test.txt"
try:
for line in urllib.request.urlopen(url):
exitNodes.append(str(line, encoding='utf8'))
for node in exitNodes:
readableNodes.append(re.sub('\\n', '', node))
#print(exitNodes)
#sys.exit()
except:
try:
f = open("/var/log/torblocker.log", "a")
#f = open("E:\\logfile.log", "a")
f.write("[" + time.strftime("%a, %d %b %Y %H:%M") + "] Error while loading new tornodes")
f.close()
except:
print("Can't write log")
pass
sys.exit()
pass
def buildList(myself):
f = open("/etc/apache2/torlist/tor-ip.conf", "w")
#f = open ("E:\\test-ips.conf", "w")
f.write('<RequireAll>\n')
f.write(' Require all granted\n')
for line in readableNodes:
f.write(' Require not ip ' + line + '\n')
f.write('</RequireAll>')
f.close()
try:
f = open("/var/log/torblocker.log", "a")
#f = open("E:\\logfile.log", "a")
f.write("[" + time.strftime("%a, %d %b %Y %H:%M") + "] Sucessfully updated tor blacklist")
f.close()
except:
pass
def torhandler(myself):
BlockTor.getListFromWeb(myself)
BlockTor.buildList(myself)
if __name__ == "__main__":
asdf = BlockTor()
BlockTor.torhandler(asdf)
編輯:
忘了提 - 如果你想測試小心:此服務器只允許一個請求的每個30分鐘
請不要使用裸體'除了:'子句。他們很可能隱藏了你得到的例外。 – bernie 2013-02-12 18:23:54
的確 - 我知道'except'子句應該設置爲寫入日誌文件,但是嘗試註釋掉所有'except'子句並只看看會發生什麼 – 2013-02-12 18:25:00