Python Web 服务器文件输出
Python Webserver File Output
我有一个已启动的 Python 网络服务器 运行 它将文件正确输出到我的目录,但我无法弄清楚如何附加到文件文件已经有或附加了时间戳。
问题是如果文件已经存在,它将覆盖它而不是创建一个新文件。所以我想:
- 将日期和时间戳附加到文件名或
- 只需将新数据附加到现有文件即可。
另外,让它自动检测服务器 IP 地址可能会很方便。
import BaseHTTPServer, os, cgi
import cgitb; cgitb.enable()
import time
import datetime
timeStamp = datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
print timeStamp
class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("content-type", "text/html;charset=utf-8")
self.end_headers()
self.wfile.write("Upload Complete")
def do_POST(self):
print self.headers
form = cgi.FieldStorage(fp = self.rfile)
ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
length = cgi.parse_header(self.headers.getheader('Content-Length'))
print length[0]
if ctype == 'application/x-www-form-urlencoded':
qs = self.rfile.read(int(length[0]))
fout = file(os.path.join('/Inet', 'video.mov'), 'wb')
fout.write (qs)
fout.close()
self.do_GET()
if __name__ == '__main__':
server = BaseHTTPServer.HTTPServer(("192.168.1.10", 8000), Handler)
print('web server on 8000..')
server.serve_forever()
您正在用 'wb' 覆盖现有文件。相反,您可以先使用 append 'a' 打开文件,然后写入文件。
f_path = open(os.path.join('/Inet', 'video.mov'), 'a+')
f_path.write(qs)
我可以用这个附加日期和时间
timeStamp = datetime.datetime.now().strftime("%A, %d. %B %Y %I-%M%p")
qs = self.rfile.read(int(length[0]))
fout = file(os.path.join('/Inet', 'video_'+timeStamp+'_.mov'), 'wb')
fout.write (qs)
我有一个已启动的 Python 网络服务器 运行 它将文件正确输出到我的目录,但我无法弄清楚如何附加到文件文件已经有或附加了时间戳。
问题是如果文件已经存在,它将覆盖它而不是创建一个新文件。所以我想:
- 将日期和时间戳附加到文件名或
- 只需将新数据附加到现有文件即可。
另外,让它自动检测服务器 IP 地址可能会很方便。
import BaseHTTPServer, os, cgi
import cgitb; cgitb.enable()
import time
import datetime
timeStamp = datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
print timeStamp
class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("content-type", "text/html;charset=utf-8")
self.end_headers()
self.wfile.write("Upload Complete")
def do_POST(self):
print self.headers
form = cgi.FieldStorage(fp = self.rfile)
ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
length = cgi.parse_header(self.headers.getheader('Content-Length'))
print length[0]
if ctype == 'application/x-www-form-urlencoded':
qs = self.rfile.read(int(length[0]))
fout = file(os.path.join('/Inet', 'video.mov'), 'wb')
fout.write (qs)
fout.close()
self.do_GET()
if __name__ == '__main__':
server = BaseHTTPServer.HTTPServer(("192.168.1.10", 8000), Handler)
print('web server on 8000..')
server.serve_forever()
您正在用 'wb' 覆盖现有文件。相反,您可以先使用 append 'a' 打开文件,然后写入文件。
f_path = open(os.path.join('/Inet', 'video.mov'), 'a+')
f_path.write(qs)
我可以用这个附加日期和时间
timeStamp = datetime.datetime.now().strftime("%A, %d. %B %Y %I-%M%p")
qs = self.rfile.read(int(length[0]))
fout = file(os.path.join('/Inet', 'video_'+timeStamp+'_.mov'), 'wb')
fout.write (qs)