【问题标题】:Cannot open file in Python "No such file or directory" error无法在 Python 中打开文件“没有这样的文件或目录”错误
【发布时间】:2013-10-27 16:03:43
【问题描述】:

我一直在尝试从 FTP 服务器下载文件。为此,我找到了这个Python-FTP download all files in directory 并对其进行了检查。无论如何,我提取了我需要的代码,它显示如下:

import os

from ftplib import FTP

ftp = FTP("ftp.example.com", "exampleUsername", "examplePWD")

file_names = ftp.nlst("\public_html")

print file_names

for filename in file_names:
    if os.path.splitext(filename)[1] != "":
        local_filename = os.path.join(os.getcwd(), "Download", filename)
        local_file = open(filename, 'wb')
        ftp.retrbinary('RETR ' + filename, local_file.write)
        local_file.close()

ftp.close()

但是当它试图打开文件时,它一直在说:

ftplib.error_perm: 550 Can't open CHANGELOG.php: No such file or directory

我已经尝试过w+a+rw 等,但我总是遇到同样的错误。有什么想法吗?

注意:我使用的是 OSX Mavericks 和 Python 2.7.5。

这个问题可能已经被问过好几次了,相信我,我研究并发现了其中一些问题,但没有一个对我有用。

  1. open() in Python does not create a file if it doesn't exist
  2. ftplib file select

【问题讨论】:

  • 这似乎是一个特立独行的问题

标签: python python-2.7 ftp osx-mavericks


【解决方案1】:

看起来您正在列出目录中的文件,然后根据返回的字符串获取文件。 nlst() 是返回完整路径还是只返回文件名?如果它只是文件名而不是 retrbinary 可能期待“/Foo/file”但得到“文件”,并且服务器的根目录中可能没有任何命名文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2015-02-25
    • 2019-07-27
    相关资源
    最近更新 更多