簡體   English   中英

如何為python創建時間戳

[英]How to create a timestamp for python

我目前有一個帶日志記錄的TCP客戶端代碼,該代碼將發送的數據保存在文本文件中。 我希望將發送的數據保存在一個文件夾中,該文件夾的標題是發送數據的時間戳。 那可能嗎? 我嘗試使用幾種方法,但是我的代碼不斷失敗。 有人可以給我一個指南,真的是一個幫手,因為我已經堅持了很長時間。 這是我的代碼現在的樣子:

import socket
import thread
import sys

BUFF = 1024 # buffer size
HOST = '172.16.166.206'
PORT = 1234 # Port number for client & server to receive data
def response(key):
    return 'Sent by client'


def logger(string, file_=open('logfile.txt', 'a'), lock=thread.allocate_lock()):
    with lock:
        file_.write(string)
        file_.flush() # optional, makes data show up in the logfile more quickly, but is slower
        sys.stdout.write(string)


def handler(clientsock, addr):
    while 1:
        data = clientsock.recv(BUFF) # receive data(buffer).
        logger('data:' + repr(data) + '\n') #Server to receive data sent by client.
        if not data:
            break           #If connection is closed by client, server will break and stop receiving data.
        logger('sent:' + repr(response('')) + '\n') # respond by saying "Sent By Client".



if __name__=='__main__':
    ADDR = (HOST, PORT) #Define Addr
    serversock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    serversock.bind(ADDR) #Binds the ServerSocket to a specific address (IP address and port number)
    serversock.listen(5)
    while 1:
        logger('waiting for connection...\n')
        clientsock, addr = serversock.accept()
        logger('...connected from: ' + str(addr) + '\n') #show its connected to which addr
        thread.start_new_thread(handler, (clientsock, addr))

您只需導入時間模塊以生成時間戳並創建以時間戳命名的目錄。

假設您想按小時將日志文件切成不同的折疊。 該代碼有點像下面這樣:

import time
import os
def logger(string, file_name='logfile.txt', lock=thread.allocate_lock()):
    with lock:
        time_stamp = time.strftime("%Y%m%d%H",time.localtime())
        if not os.path.isdir(time_stamp): os.mkdir(time_stamp)
        with open(os.path.join(time_stamp, file_name), "a") as file_:
            file_.write(string)
            file_.flush()
        sys.stdout.write(string)

該代碼未經測試。

在以下位置查看Python日志記錄模塊:

http://docs.python.org/2/howto/logging.html#logging-basic-tutorial

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM