Как читать данные, находящиеся в общей папке Windows, с сервера Linux с помощью python - PullRequest
2 голосов
/ 09 мая 2019

В моей текущей ситуации у меня на сервере Linux есть скрипт на python, который будет работать с некоторыми PDF-файлами, расположенными в удаленной общей папке Windows. В настоящее время я использую 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)

1 Ответ

0 голосов
/ 06 июня 2019

Для изменения содержимого файла, находящегося в среде Windows, с помощью кода, работающего в среде Linux, файл должен быть сначала перемещен в среду Linux, то есть данные должны находиться вместе с кодом на том же компьютере или распределенном система. Для выполнения задачи редактирования файла сначала необходимо переместить файл на локальный компьютер, затем внести изменения в файл, а затем файл, наконец, переместить обратно на компьютер с Windows, где будет перезаписан исходный файл, таким образом, требуемый задание будет выполнено.

...