如何使用 python 从 Linux 服务器读取驻留在 Windows 共享文件夹中的数据
How to read data residing on Windows Shared folder from a Linux Server using python
在我目前的情况下,我的 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)
要在 Linux 环境中通过代码 运行 更改驻留在 Windows 环境中的文件的内容,必须将文件移动到 Linux 环境中首先,数据应该与代码一起驻留在同一台机器或分布式系统上。要在文件上执行编辑任务,首先必须在本地机器上移动文件,然后对文件进行编辑,最后将文件移回 windows 机器,原始文件将被覆盖, 这样就完成了想要的任务。
在我目前的情况下,我的 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)
要在 Linux 环境中通过代码 运行 更改驻留在 Windows 环境中的文件的内容,必须将文件移动到 Linux 环境中首先,数据应该与代码一起驻留在同一台机器或分布式系统上。要在文件上执行编辑任务,首先必须在本地机器上移动文件,然后对文件进行编辑,最后将文件移回 windows 机器,原始文件将被覆盖, 这样就完成了想要的任务。