python 访问samba共享文件夹
时间: 2023-08-02 08:12:51 浏览: 112
要在 Python 中访问 Samba 共享文件夹,需要使用 Samba 客户端库。下面是一个使用 libsmbclient 库的示例:
```python
import os
from smb.SMBConnection import SMBConnection
# 连接到 Samba 服务器
server_name = "SERVER_NAME"
server_ip = "SERVER_IP"
user_name = "USER_NAME"
password = "PASSWORD"
conn = SMBConnection(user_name, password, "", server_name, use_ntlm_v2=True)
conn.connect(server_ip, 445)
# 列出共享目录中的文件
share_name = "SHARE_NAME"
dir_name = "/"
file_list = conn.listPath(share_name, dir_name)
for file in file_list:
if not file.isDirectory:
print(file.filename)
# 下载共享目录中的文件
local_dir = "/path/to/local/directory/"
remote_file = "REMOTE_FILE_PATH"
local_file = os.path.join(local_dir, os.path.basename(remote_file))
with open(local_file, "wb") as f:
file_attributes, filesize = conn.retrieveFile(share_name, remote_file, f)
print(f"Downloaded {local_file} ({filesize} bytes)")
# 断开连接
conn.close()
```
在上面的示例中,我们使用 `SMBConnection` 类连接到 Samba 服务器,并传递用户名、密码、服务器名称和 IP 地址。在连接之后,我们列出了共享目录中的所有文件,并下载了一个特定的文件。
请注意,这个示例假设你已经安装了 `pysmb` 库,这是一个 SMB 客户端库,它是基于 `libsmbclient` 库的 Python 封装。如果你还没有安装 `pysmb`,可以使用 `pip` 安装:`pip install pysmb`。
阅读全文