gpt4 book ai didi

python - 使用 ftplib 循环 ftp 中的文件在第二个循环中返回 "No such file or directory"

转载 作者:行者123 更新时间:2023-12-01 08:19:21 33 4
gpt4 key购买 nike

我正在尝试循环遍历 ftp 上的文件,然后存储它们。但是,在第二次迭代时,我收到错误:

FileNotFoundError: [Errno 2] No such file or directory:

这是我的代码:

# TODO: auth
from ftplib import FTP

def extract(environment):

ftp = FTP(auth["host"])

# Monitor and extract
with ftp.login(user=auth['username'], passwd=auth['password']) as ftp:

folders = []
try:
folders = ftp.nlst()
except:
print('Probably no folders in this directory')

for f in folders:

# Go into subfolder per subfund
path = "".join(['/',f])
ftp.cwd(path)

# List files
files = []
try:
files = ftp.nlst()
except:
print('Probably no files in this directory')

for filename in files:
if ".csv" in filename:

with open(filename, 'r+') as source_file:

print('opened, this works for the 1st only')
store_to_gcs(source_file, filename)


def store_to_gcs(source_file, filename)
# TODO: bucket = storage.bucket(app=app)
# After it I store it to GCS, does it have anything to do with it?

storage_ref = "test/" + filename
blob = bucket.blob(storage_ref)
blob.upload_from_file(source_file)

with open(filename, 'r+') as source_file 仅适用于 files 中的第一个文件,但不适用于第二个文件。

我可以确认我位于正确的目录中,就像我使用 ftp.pwd() 进行确认一样。

最佳答案

open(filename, 'r+') 打开本地文件。虽然我相信您想打开远程文件。

您可能有 ffpos1_708524_57474156_18022019_036521_1.csv 的本地副本,但没有 fflia1_708470_57474842_18022019_036521_1.csv 的本地副本。这可以解释为什么 open 第一次迭代似乎成功了。

<小时/>

ftplib 中没有类似 open 的函数。

<小时/>

有两种解决方案:

关于python - 使用 ftplib 循环 ftp 中的文件在第二个循环中返回 "No such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54773754/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com