从 FTP 文件夹下载所有文件时出现“权限被拒绝”错误

2023-12-21

到目前为止,我已经从 FTP 站点获取了我需要的文件的名称。请参阅下面的代码。

from ftplib import FTP
import os, sys, os.path

def handleDownload(block):
     file.write(block)

ddir='U:/Test Folder'
os.chdir(ddir)
ftp = FTP('sidads.colorado.edu')
ftp.login()

print ('Logging in.')
directory = '/pub/DATASETS/NOAA/G02158/unmasked/2012/04_Apr/'

print ('Changing to ' + directory)
ftp.cwd(directory)
ftp.retrlines('LIST')

print ('Accessing files')

filenames = ftp.nlst() # get filenames within the directory
print (filenames)

我遇到麻烦的地方是将文件下载到文件夹中。下面的代码是我尝试过的,但是由于在写入文件之前未创建文件,我收到了权限错误。

for filename in filenames:
     local_filename = os.path.join('C:/ArcGis/New folder', filename)
     file = open(local_filename, 'wb')
     ftp.retrbinary('RETR '+ filename, file.write)
     file.close()

ftp.quit()

这是错误和回调。


目录列表包括.对该文件夹的引用(也可能是..引用父文件夹)。

你必须跳过它,你不能下载它(它们)。

for filename in filenames:
    if (filename != '.') and (filename != '..'):
        local_filename = os.path.join('C:/ArcGis/New folder', filename)
        file = open(local_filename, 'wb')
        ftp.retrbinary('RETR '+ filename, file.write)
        file.close()

实际上您必须跳过列表中的所有文件夹。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 FTP 文件夹下载所有文件时出现“权限被拒绝”错误 的相关文章

随机推荐

  • 使用命令行参数运行 webpack

    我一直在尝试将 args 从命令行传递到 webpack 插件 我可以通过 process argv 访问参数 但之后 wwebpack 失败并出现错误 未找到条目模块中的错误 错误 无法解析模块 看来 webpack 将 args 视为它
  • 滑动窗口操作的 Numpy 矢量化

    我有以下 numpy 数组 arr 1 1 2 3 4 5 6 3 X 2 arr 2 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 5 X 2 arr 1显然是一个3 X 2数组 而arr 2 is a
  • 实体框架对导航属性的约束

    我想限制导航属性返回的模型 例如 我正在使用AuditInfo模型来记录模型的活动 一旦模型被删除DeletedBy and Deleted属性已设置 然而 由于数据库中没有真正 删除 任何内容 因此这些模型仍将填充在其他模型引用的导航属性
  • 如何在 Google Apps 脚本中检查拼写和语法

    如何删除 Google 表格中包含拼写或语法错误的所有行 我更喜欢通过 Google Apps 脚本来完成此操作 我考虑过的 使用 工具 菜单中的拼写检查器太慢了 因为我已经 几万行 我发现了this https stackoverflow
  • ProgramData 和 AppData 有什么区别?

    我需要为我的程序存储一些特定于用户的配置数据 Application Data AppData 在用户目录中 和 ProgramData 在系统驱动器的根目录中 似乎都是放置它的合理位置 程序数据和应用程序数据有什么区别 我应该使用哪一个
  • 查找具有重复值的字典键

    some dict firstname Albert nickname Albert surname Likins username Angel 我想返回我的字典的键 其中它们的值存在不止一次 有人可以告诉我如何实现这一点吗 a list
  • select()系统调用中nfds=0时发生了什么

    我正在 Linux 上调试一个应用程序 它有几个线程定期调用select系统调用 strace shows select 0 NULL NULL NULL 1 342414 So nfds 0 我认为 nfds 是任何集合中出现的最高文件描
  • Chrome 自动完成多个电子邮件字段

    我的表单上有 3 个输入框 Google Chrome 提供自动完成功能 因此 如果您单击其中任何一个或开始输入内容 您将看到 Chrome 选项列表 但当您在这些自动完成选项之间上下移动时 3 个输入框将填充值 而不是当前的文本框 htt
  • Android:本地化标准文本,例如确定、取消和 GPS 未激活 - 例如?

    我希望本地化我的应用程序 当然 我需要本地化特定于我的应用程序的文本 但是标准文本是否存在一些标准资源 例如 确定 和 取消 GPS 未激活等 或者我必须完全本地化所有内容吗 android 是否附带了一些全局文本资源 我如何访问它 提前致
  • C 是否有与 C++ 中的 std::less 等效的东西?

    我最近正在回答一个关于 do 的未定义行为的问题p lt q在C中当p and q是指向不同对象 数组的指针 这让我想到 C 具有相同的 未定义的 行为 lt 在这种情况下 还提供了标准库模板std less保证返回与 lt 当指针可以比较
  • $PATH 中的波形符字符 ('~')? (例如:PATH='~/bin':/usr/bin:/bin)

    根据我的测试 bash很高兴 in PATH but usr bin which不是 是否有关于此的任何标准 如 POSIX Example STEP 100 echo BASH VERSION 4 4 12 1 release STEP
  • 如何在Windows中创建虚拟Com1端口?

    我正在开发一个在袖珍电脑上运行的移动应用程序 我们有一个移动打印机和刷卡器 使用 com1 发送和获取信息 我正在使用设备模拟器 并且想在没有打印机的情况下进行测试 如何创建虚拟 com1 端口以进行读取 我尝试了 com0com 但设备模
  • Go 内置函数是否使用泛型?

    看看 Go 的内置函数 我才意识到它们不使用接口 而是使用神奇的 类型 https golang org src builtin builtin go https golang org src builtin builtin go 那么 在
  • 在 Swift 中创建绑定到特定范围的类型

    假设我有一个函数需要Int 但不仅仅是任何Int 它可能是 仅限自然数 Ints2 至 200 etc 假设有效值的数量太大而无法使用Enum明确声明所有这些都是可行的方法 有没有办法在 Swift 中声明一个指定闭范围的类型 我尝试玩弄R
  • 上传用户 Firebase 的个人资料图片

    我正在尝试将图像添加到 Android 的实时数据库 firebase 中的用户信息中 我已将图像上传到 firebase 存储中 但如何才能将该图像添加到该用户的数据库中 代码如下 inside onCreate method img s
  • 插入 5000 多个 Android 联系人的最有效方法

    我意识到这在很多地方都有所涉及 包括here https stackoverflow com questions 5596354 insertion of thousands of contact entries using applyba
  • 递归SQL语句(PostgreSQL 9.1.4)

    PostgreSQL 9 1 业务情况 每个月都会有一批新的帐户分配给特定流程 每批次可按月份 账户数 账户总余额进行描述 该流程的目标是从客户那里收回部分余额 然后每月单独跟踪每个批次 自批次转移到流程后每个月回收的金额 Goal 我的目
  • 在 LibGDX 中合并模型构建器中的模型

    我是 LibGDX 3D 设施的新手 我想知道如何合并使用创建的两个圆柱体模型构建器 createCylinder http libgdx badlogicgames com nightlies docs api com badlogic
  • 从非活动中使用 startActivityForResult

    我有 MainActivity 它是一个 Activity 和其他类 这是一个简单的 java 类 我们将其称为 SimpleClass 现在我想从该类运行命令startActivityForResult 我虽然我可以仅使用 MainAct
  • 从 FTP 文件夹下载所有文件时出现“权限被拒绝”错误

    到目前为止 我已经从 FTP 站点获取了我需要的文件的名称 请参阅下面的代码 from ftplib import FTP import os sys os path def handleDownload block file write