У меня есть скрипт, работающий на Python 3, Ubuntu 16.04, который тянет плоский текстовый файл Windows в Postgres.В настоящее время я должен вручную переместить текстовый файл, и я хотел бы автоматизировать это.
Если я сделаю это:
conn = SMBConnection(credentials['username'],credentials['password'],
credentials['host'],credentials['server'],use_ntlm_v2 = True)
assert conn.connect(credentials['server_IP'], 139)
files = conn.listPath(credentials['share_name'], "/")
for item in files:
print(item.filename)
if item.filename == req_file:
print('Found a match!!')
conn.close()
Я получу список файлов на целевом компьютере, к которому предоставлен общий доступкаталог.Он даже говорит мне, когда у меня есть соответствие для файла, который я ищу.
Однако, если я пытаюсь получить этот файл, он говорит мне, что он не может подключиться:
conn = SMBConnection(credentials['username'],credentials['password'],
credentials['host'],credentials['server'],use_ntlm_v2 = True)
assert conn.connect(credentials['server_IP'], 139)
file_obj = tempfile.NamedTemporaryFile(mode='w+t', delete=False)
file_name = file_obj.name
xPath = credentials['source'] + '\\' + req_file
newX = conn.retrieveFile(credentials['source'], xPath, file_obj)
conn.close()
Это дает мне ошибку «невозможно подключиться».Если я изменяю xPath в соответствии с конфигурацией listPath (credentials ['share_name']), я получаю странную ошибку: аргумент write () должен быть строкой, а не байтами! Я хочу записать содержимое этого файла во временный файл, чтобыЯ могу вытащить его в БД. Спасибо!