在我目前的情况下,我在Linux服务器上有一个python脚本,该脚本可以处理驻留在远程Windows共享文件夹中的一些pdf文件。我当前正在使用smbclient与其建立连接,但是我无法处理这些文件,可能我需要首先将所有文件传输到Linux服务器,因为那不利于所有文件,因为所有文件的大小可能非常大。在这种情况下,我还能做些什么,有一种方法可以创建一个运行python脚本并使用这些文件产生结果的管道。
from smb.SMBConnection import SMBConnection
userID = '---------'
password = '-------'
client_machine_name = '-----'
server_name = ' '
server_ip = '...'
domain_name = '-------'
conn=SMBConnection(userID,password, client_machine_name, server_name,
domain=domain_name, use_ntlm_v2=True,is_direct_tcp=True)
conn.connect(server_ip, 445)
shares = conn.listShares()
# storing file names in a list
dirlist = []
for share in shares:
if not share.isSpecial and share.name not in ['NETLOGON', 'SYSVOL']:
sharedfiles = conn.listPath(share.name, '/DMDA_2.0_Files/ProcessedBatchDocPdfs/12345678')
for sharedfile in sharedfiles:
print(sharedfile.filename)
dirlist.append(sharedfile.filename)
# retrieve or download file
path = 'DMDA_2.0_Files/ProcessedBatchDocPdfs/12345678/111111.pdf'
with open('abc.pdf','wb') as f:
conn.retrieveFile(share.name, path, f)
答案 0 :(得分:0)
要通过Linux环境上运行的代码更改Windows环境中文件的内容,必须首先将文件移至Linux环境,即数据应与代码一起驻留在同一台计算机或分布式计算机上系统。为了对文件执行编辑任务,必须先将文件移到本地计算机上,然后再对该文件进行编辑,然后将文件最后移回到Windows机器上,在该机器上原始文件将被覆盖,因此需要任务将完成。