python远程复制目录和读取文本文件

python远程复制目录和读取文本文件,python,windows,file,wmi,remote-access,Python,Windows,File,Wmi,Remote Access,我即将开始一个项目,在这个项目中,Python脚本可以远程访问Windows服务器,并读取特定目录中的一组文本文件。我曾计划使用一个名为WMI的模块,因为这是我使用Python成功远程访问windows服务器的唯一方法,但经过进一步研究,我不确定我是否会使用此模块 唯一的问题是,这些文本文件大约每2秒就不断更新一次,如果脚本遇到互斥错误,在重写文件时试图打开文件,我担心脚本会崩溃。我唯一能想到的就是创建一个新的目录,通过脚本将所有文件复制到这个目录中,并从那里读取它们;一旦检查完所有的旧文件,就

我即将开始一个项目,在这个项目中,Python脚本可以远程访问Windows服务器,并读取特定目录中的一组文本文件。我曾计划使用一个名为WMI的模块,因为这是我使用Python成功远程访问windows服务器的唯一方法,但经过进一步研究,我不确定我是否会使用此模块

唯一的问题是,这些文本文件大约每2秒就不断更新一次,如果脚本遇到互斥错误,在重写文件时试图打开文件,我担心脚本会崩溃。我唯一能想到的就是创建一个新的目录,通过脚本将所有文件复制到这个目录中,并从那里读取它们;一旦检查完所有的旧文件,就不断地用新文件覆盖这些文件。不幸的是,我不知道如何正确或有效地执行此操作


我该怎么做呢?哪个python模块最适合此执行?

我以前使用WMI做过一些工作,但不是从python来的,我不会尝试将其用于这样的项目。正如你所说,WMI往往是晦涩难懂的,而我的经验表明,这些东西很难长期支持

我要么在Windows API级别工作,要么可能设计一个执行所需操作的服务,并根据需要访问该服务。当然,您需要在需要控制的每台机器上安装此服务。这两种方法都有优点。WinAPI方法基本上保证了您不会发明任何新的安全漏洞,并且最初更简单。服务方法应该使应用程序更快,所需的网络流量更少。我相信你很容易想到别人

无论采用何种方式,您仍然必须拥有必要的权限、网络端口等。例如,WMI通常被防火墙阻止,并且您仍然作为某些NT进程运行

对不起,这不是一个真正的答案——意思是一个冗长的评论

增加

Re:API编程,虽然您没有windowsapi的经验,但我希望您对您所描述的任务很熟悉,例如,读写文件、扫描目录并不是Windows独有的。您只需要了解API中您感兴趣的部分


一旦您创建了适当的安全上下文并启动了客户端进程,中就没有面向服务的内容,即您可以简单地打开和关闭文件等,忽略文件是远程的这一事实,除了文件/文件夹位置的UNC名称中包含的服务器名称之外。

现在Ansible中有Windows支持。它使用winrm。有很多Python库都使用winrm,只是google而已,但Ansible用途非常广泛


从外观上看,它需要一台Linux控制机,在我的例子中,我有一台Windows控制机,但我忘了:/you确实需要一台Linux控制机。但是,如果它满足您的要求,您可以使用Linux虚拟机。我有一个这样的设置,它工作得很好,但它不是在生产环境中。另外,我以前也没有尝试过,但您可能可以使用cygwin并设置一个SSH服务器来模拟Linux Box。我同意,在查看WMI后,我不确定是否要继续使用此模块。尽管我对任何类型的API都没有经验