Source

pysmbclient /

Filename Size Date modified Message
34.3 KB
2.6 KB
2.2 KB
16.7 KB

== Python smbclient wrapper. ==

This is a wrapper that works by running the "smbclient" subprocess and providing an API similar to the one provided by python os module.

It is an ugly hack, but it is here for anyone that finds it useful.

The programmer before me was using a "bash" file with lots of smbclient calls, so I think my solution is at least better.

=== Usage example ===

{{{ >>> smb = smbclient.SambaClient(server="MYSERVER", share="MYSHARE",

username='foo', password='bar', domain='baz')
>>> print smb.listdir("/")
[u'file1.txt', u'file2.txt']
>>> f = smb.open('/file1.txt')
>>> data = f.read()
>>> f.close()
>>> smb.rename(u'/file1.txt', u'/file1.old')
}}}

=== Documentation ===

==== Creating the object ====

{{{ import smbclient smb = smbclient.SambaClient(server, share, username=None, password=None,

domain=None, resolve_order=None, port=None, ip=None, terminal_code=None, buffer_size=None, debug_level=None, config_file=None, logdir=None, netbios_name=None, kerberos=False)

}}}

If you want to use kerberos authentication just use the argument {{{kerberos=True}}} and you don't need to pass username and password.

==== Supported methods of operation ====

{{{ chmod(path, *modes)

Set/reset file modes Tested with: AHS smbc.chmod('/file.txt', '+H')
close()
Closes the connection, flushes and closes all open remote files.
diskinfo(self)
Fetches information about a volume
info(path)
Fetches information about a file
exists(path)
Returns True if path exists in the remote host
isdir(path)
Returns True if path is a directory/folder
isfile(path)
Returns True if path is a regular file
glob(path)
Lists a glob (example: "/files/somefile.*") returns a list of tuples in the format: [(filename, modes, size, date), ...]
lsdir(path)
Lists a directory returns a list of tuples in the format: [(filename, modes, size, date), ...]
listdir(path)
Emulates os.listdir()
mkdir(path)
Creates a new folder remotely
rmdir(path)
Removes a remote empty folder
open(path, mode='r')
Opens the file indicated by path and returns it as a file-like object

rename(old_name, new_name)

volume()
Fetches the volume name
serial()
Fetches the volume serial
unlink(path) or remove(path)
Removes/deletes/unlinks a file

download(remote_path, local_path) upload(local_path, remote_path) upload_update(local_path, remote_path)

netsend(destination, message)
Sends a message, using netsend

}}}