如何为python创建时间戳

如何为python创建时间戳,python,timestamp,tcpclient,Python,Timestamp,Tcpclient,我目前有一个带有日志记录的TCP客户端代码,它将发送的数据保存在一个文本文件中。我希望发送的数据保存在一个文件夹中,该文件夹的标题是发送数据的时间戳。可能吗?我尝试了几种方法,但我的代码总是失败。如果有人能给我一个指导,那真的会是一个很好的帮手,因为我已经在这上面呆了很长一段时间了。 这就是我的代码现在的样子: import socket import thread import sys BUFF = 1024 # buffer size HOST = '172.16.166.206' POR

我目前有一个带有日志记录的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日志模块:


这似乎是您第三次尝试提问。提供一些具体的例子,例如“我希望发送的数据保存在一个文件夹中,该文件夹的标题是发送数据的时间戳。”(使用简单的英语,而不是可能出现的破译代码)。仍然不清楚:“时间戳”是什么意思(POSIX时间戳是“自历元起的秒数”(一个数字)或者仅仅是一个以人类可读的形式显示故障时间的字符串?)您希望将时间戳放在哪里(在文件夹名称中,或在文件名中,或在日志文件中每行的开头?您多长时间获得一次新的时间戳:每个客户端连接(
handler()
call)一次,或每次
.recv()
call返回一次(它可能返回1个字节,也可能返回所有
BUFF
字节)?(换句话说,您如何定义输入数据的消息边界?在您的情况下,“已发送数据”是什么意思?)