2012-02-08 3 views
0

Я пытаюсь прочитать файл на сетевом сервере (с компьютера Windows XP), к которому я бы обычно обращался, запросив \\ServerName\dirPath\ в диалоговом окне запуска.Прочитать удаленный файл с разрешениями доступа

Прямо сейчас, я должен написать программу, которая считывает файл с сервера и возвращает некоторые результаты на моем ПК.

Проблема, с которой я столкнулся, заключается в том, что имя пользователя на моем компьютере не имеет учетной записи входа на сервер. В результате, я не могу прочитать файл на сервере, когда я попытался:

f = open(r'\\server\path\to\file', 'r') 

Я знаю, что я могу это исправить, добавив учетную запись пользователя к серверу или к компьютеру, но не хватает этих решений , есть ли способ передать учетные данные для входа на сервер?

Я бегу Windows XP на моем компьютере, и какой-то вкус Linux на сервере

Спасибо

+0

Как файлы распространяются с сервера Linux? NFS? SMB? –

+0

Я считаю, что это NFS. Я также могу 'ssh' на сервер, если мне нужно – inspectorG4dget

+0

Извините. Я точно знаю, что сейчас работает Samba – inspectorG4dget

ответ

2

Вы говорите, что это доля Samba - посмотрите на PySmbClient. Таким образом, вы можете сделать что-то вроде этого:

client = smbclient.SambaClient(server="servername", share="sharename", 
    username="foo", password="bar", domain="baz") 
f = smb.open('/path/to/file') 
data = f.read() 
f.close() 

Alernatives доступны, такие как PySamba.

+0

Вот что я сейчас работаю. Спасибо. Не могли бы вы объяснить, как я должен использовать «sharname»? В частности, вы могли бы написать что-то для этого сценария: servername = '' SERVER '', файл, который я пытаюсь получить на сервере, находится в' \\ SERVER \ dir1 \ dir2 \ dir3 \ file.ext "' – inspectorG4dget

2

олицетворения с помощью модулей win32 может работать для вас. См. Это ActiveState Recipe

Я использовал инструмент командной строки Technet Runas вручную. В крайнем случае вы можете использовать это с вызовом подпроцесса, чтобы скопировать файл в локальный файл temp.