works_with_smb.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from smb.SMBConnection import SMBConnection
  2. class works_with_smb:
  3. def __init__(self, user, password, share_name, ip,
  4. my_hostname, remote_name_machine, port=445):
  5. self.user = user
  6. self.password = password
  7. self.ip = ip
  8. self.port = port
  9. self.share_name = share_name
  10. self.remote_name_machine = remote_name_machine
  11. self.my_hostname = my_hostname
  12. def get_listfiles(self, path_dir):
  13. list_files = [x.filename for x in self._server.listPath(
  14. self.share_name, path_dir) if x.filename not in ['.', '..']]
  15. return list_files
  16. def copy_files_to_smb(self, src, desc):
  17. data_file = open(src, 'rb')
  18. self._server.storeFile(self.share_name, desc, data_file)
  19. def delete_files(self, path):
  20. self._server.deleteFiles(self.share_name, path)
  21. def create_dir(self, dirname):
  22. if dirname not in self.get_listfiles('/'):
  23. self._server.createDirectory(self.share_name, '/'+dirname)
  24. else:
  25. pass
  26. def connect(self):
  27. self._server = SMBConnection(
  28. self.user, self.password, self.my_hostname,
  29. self.remote_name_machine, use_ntlm_v2=True, is_direct_tcp=True)
  30. self._server.connect(self.ip, self.port, timeout=60)
  31. def __enter__(self):
  32. self.connect()
  33. return self
  34. def __exit__(self, exc_type, exc_val, exc_tb):
  35. self._server.close()
  36. def close(self):
  37. self._server.close()
  38. if __name__ == "__main__":
  39. pass