获取Windows远程文件的最后修改日期

2024-09-30 14:18:00 发布

您现在位置:Python中文网/ 问答频道 /正文

import sys, os, datetime, time, urllib
from subprocess import *

List_SP_Servers=["toto1","toto2","toto3"]
ListTraceFile_SP_Servers=["c:\\\\dic1\\\\udic1\\\\file1.txt","c:\\\\dic1\\\\udic1\\\\file2.txt"]

for l__sp in List_SP_Servers:
    try:
        print '\n--------'+str(l__sp)+'--------'
        for l__traces in ListTraceFile_SP_Servers:
            #l__cmd1 = '['+'\"psexec\",\"\\\\'+l__sp+'\",'+'\"-nobanner\"'+',\"ls\",\"-al\"'+',"'+l__traces+'\"'+']'
            #l__cmd1 = '(['+'\"psexec\",\"\\\\'+l__sp+'\",'+'\"-nobanner\"'+',\"ls\",\"-al\"'+',"'+l__traces+'\"'+'],shell=True,stdout=PIPE).communicate()[0]'
            #print l__cmd1
            #output1=popen(l__cmd1,shell=True,stdout=PIPE).communicate()[0]
            #l__cmd1 = "[\"C:\\Tools\\Sysinternalsuite\\psexec\",\"\\\\\\"%s"\",\"-nobanner\",\"ls\",\"-al\","%s"\"]" % (l__sp,l__traces)
            #print 'La vies est -->'+l__cmd1
            #l__cmd1_WithCall = "\'psexec\",\"\\\\\\"%s"\",\"-nobanner\",\"ls\",\"-al\" "%s"\'" % (l__sp,l__traces)
            l__cmd1_WithCall = "\'psexec \\\%s -nobanner ls -al %s\'" % (l__sp,l__traces)
            #l__cmd1_WithCall = "\"psexec\",\"\\\%s,\"ls\",\"-al\",%s" % (l__sp,l__traces)
            print 'l__cmd1_WithCall-->',l__cmd1_WithCall
            p5=call(l__cmd1_WithCall,shell=True)
            print '---->',p5,'<-----'
    except:
        print '\n'+l__sp+' Can\'t reach it !\n'

当我试图从Windows服务器获取一些文件的最后修改日期到远程Windows服务器时,上面的代码给出了错误。 我在Windows上使用psexec,但可能它们是获取此类信息的其他解决方案。在

我尝试过使用subprocess.call, subprocess.popen, subprocess.check_out,但当我试图直接在cmd上键入命令时,它工作得很好。在


Tags: truewindowsshelllsspsubprocessalprint
1条回答
网友
1楼 · 发布于 2024-09-30 14:18:00

为了获得最后一次在windows中修改文件的时间,可以使用下面的代码

import os,datetime
timestamp = os.stat(PATH_OF_FILE).st_ctime
readable = datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')

首先得到时间戳,readable将其转换为日期

相关问题 更多 >