You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置跨机器路径实现Python对比脚本访问远程文件

跨机器直接访问Windows端文件运行Python对比脚本的实现方法

Python无法直接识别带Windows机器IP的原生UNC路径完成跨机文件读取,你可以选以下两种落地性最强的方案实现,不需要把文件拷贝到Linux脚本所在机器:

方案一:SMB共享挂载(零代码改动,适配你原有脚本逻辑)

这个方案把Windows的共享目录挂载成Linux的本地目录,挂载完成后访问远程文件和访问本地文件没有区别,原有脚本几乎不用修改。

  • 配置Windows端共享
    找到待对比文件所在的文件夹,右键打开「属性-共享-高级共享」,勾选「共享此文件夹」,自定义一个共享名(例如file_compare),进入权限设置,给访问用的Windows账号分配读取权限;同时在Windows防火墙中放开「文件和打印机共享」的入站规则,避免连接被拦截。
  • Linux端安装挂载依赖
    根据你用的Linux发行版执行对应命令安装cifs挂载工具:
    • Debian/Ubuntu:sudo apt update && sudo apt install cifs-utils -y
    • CentOS/RHEL:sudo yum install cifs-utils -y
  • 执行挂载
    先创建一个本地空目录作为挂载点,例如/mnt/win_files,再执行挂载命令:
    sudo mount -t cifs //192.168.1.108/file_compare /mnt/win_files -o username=你的Windows登录账号,password=账号对应密码,vers=3.0
    
    挂载成功后,你脚本里的待对比文件路径直接写/mnt/win_files/[你的目标文件名]即可正常运行。如果需要开机自动挂载,把对应配置写入/etc/fstab即可。

方案二:Python脚本内通过SMB协议直接读取远程文件(无需修改Linux系统挂载配置)

如果不想做系统级的挂载配置,可以直接用Python的SMB客户端库直连Windows共享读取文件,只需要少量修改脚本的文件读取逻辑。

  • 先安装依赖库:pip install pysmb
  • 参考示例修改脚本的文件读取部分:
    from smb.SMBConnection import SMBConnection
    
    # 建立和Windows机器的SMB连接
    smb_conn = SMBConnection(
        username="你的Windows登录账号",
        password="账号对应密码",
        my_name="linux_host",
        remote_name="Windows机器的主机名",
        use_ntlm_v2=True
    )
    smb_conn.connect("192.168.1.108", 445)
    
    # 读取本地基准文件
    with open("/path/to/your/local/base_file", "rb") as f:
        local_data = f.read()
    # 直接读取Windows共享目录下的待对比文件,共享名和之前设置的保持一致
    with smb_conn.openFile("file_compare", "待对比文件名", "rb") as f:
        remote_data = f.read()
    
    # 后续直接接你原来写好的文件对比逻辑即可
    smb_conn.close()
    

注意:使用这个方案要确认Windows机器的445端口没有被防火墙拦截,且你用的Windows账号有共享目录的读取权限。

常见踩坑:不要直接在Linux上运行的Python脚本里写\\192.168.1.108\共享目录\文件这种Windows专属的UNC路径,Linux内核原生不识别这种路径格式,运行一定会报文件不存在的错误。

内容的提问来源于stack exchange,提问作者Scott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:15:37