【问题标题】:How to get a file from a network windows directory and move to my Python Django project directory?如何从网络 windows 目录获取文件并移动到我的 Python Django 项目目录?
【发布时间】:2018-06-06 11:56:56
【问题描述】:

我在 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] 没有这样的文件或目录: 'smb://server-name/GRUPOS/TECNOLOGIA_INFORMACAO/Dashboard Diretoria/general_reports.csv'

这条路径(source_path)是我刚刚从Finder中复制过去的,所以……我认为是正确的。我已经在 StackOverflow 上进行了搜索,并尝试了其他方法,例如在路径前加上“r”... 没什么...。

使用的技术

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

感谢您的帮助和耐心。

【问题讨论】:

    标签: python django windows macos


    【解决方案1】:

    您需要为 python 导入一个 SMB 客户端库,或者在您在那里工作之前安装该驱动器

    【讨论】:

    • 感谢您的回答。我会试试的,我会回来的儿子。
    • 我尝试导入这个库pypi.org/project/PySmbClient 并打开文件。它显示此错误:[Errno 2] 没有这样的文件或目录:b'smbclient':b'smbclient'。你有什么想法吗?
    【解决方案2】:

    首先,谢谢@Van de Wack。

    这是完整的解决方案:

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

      pip 安装 pysmb

    2. 将库导入您的代码:

      从 smb.SMBConnection 导入 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)
      

    【讨论】:

      猜你喜欢
      • 2017-08-27
      • 1970-01-01
      • 2012-09-03
      • 2017-07-29
      • 1970-01-01
      • 2023-04-07
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多