如何从网络windows目录中获取文件并移动到pythonDjango项目目录?

2024-10-01 09:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我在MacOS上编程,使用Python+Django。我必须在我们的专用网络(Windows网络)中获取一些文件并将它们移动到我们的服务器上。在那里,Python/Django将读取这些文件并将数据保存在数据库中。我怎么能做到呢?在

我尝试过的

source_path = "smb://server-name/GRUPOS/TECNOLOGIA_INFORMACAO/Dashboard Diretoria/"
dest_path = "./static/reports/". # This is my static folder where I want to move the file
file_name = "general_reports.csv"
shutil.copyfile(source_path + file_name, dest_path + file_name)

它给出以下错误:

[Errno 2] No such file or directory: 'smb://server-name/GRUPOS/TECNOLOGIA_INFORMACAO/Dashboard Diretoria/general_reports.csv'

这个路径(源路径)我刚从Finder复制并经过,所以。。。我认为这是正确的。我已经在StackOverflow上搜索过了,我也尝试过其他方法,比如在路径前面放“r”。。。没有什么。。。。在

使用的技术

  • Python 3.6
  • Django 3.0.5
  • Mac OSX
  • Windows网络。在

谢谢你的帮助和耐心。在


Tags: 文件pathdjangoname路径网络sourceserver
2条回答

首先,谢谢你@Van de Wack。在

这是完整的解决方案:

  1. 安装pysmb库(https://pypi.org/project/pysmb/):

    pip安装pysmb

  2. 将库导入代码:

    从smb.smb连接导入SMBConnection

  3. 以下代码是列出所有目录的示例:

    server_ip = "10.110.10.10" # Take your server IP - I have put a fake IP :)
    server_name = 'myserver' # The servername for the IP above
    share_name = "GRUPOS" # This is the principal folder of your network that you want's to connect
    network_username = 'myuser' # This is your network username
    network_password = '***' # This is your network password
    machine_name = 'myuser@mac-mc70006405' # Your machine name
    conn = SMBConnection(network_username, network_password, machine_name, server_name, use_ntlm_v2 = True)
    assert conn.connect(server_ip, 139)
    files = conn.listPath(share_name, "/TECNOLOGIA_INFORMACAO/Dashboard Diretoria/")
    for item in files:
       print(item.filename)
    

您需要导入一个用于python的SMB客户机库,或者在开始工作之前装载该驱动器

相关问题 更多 >