Python重命名ftp上载文件删除

Python重命名ftp上载文件删除,python,upload,ftp,rename,Python,Upload,Ftp,Rename,我有一个脚本,在上传到FTP之前重命名文件。首先,它搜索模式“_768x432_1700_m30_”,如果找到该模式,该模式将被替换为“new”-然后将目录中的所有“.mp4”文件上载到FTP服务器。但由于某种原因,我似乎无法删除上传后的文件?还有没有更好的方法来编写这个脚本?(我对python相当陌生) 在下一行 ftp.storbinary('STOR'+dest_dir+文件,打开(Origin_dir+文件,“rb”),1024) 您打开了一个文件,但没有保留对它的引用并关闭它。在Win

我有一个脚本,在上传到FTP之前重命名文件。首先,它搜索模式“_768x432_1700_m30_”,如果找到该模式,该模式将被替换为“new”-然后将目录中的所有“.mp4”文件上载到FTP服务器。但由于某种原因,我似乎无法删除上传后的文件?还有没有更好的方法来编写这个脚本?(我对python相当陌生)

在下一行
ftp.storbinary('STOR'+dest_dir+文件,打开(Origin_dir+文件,“rb”),1024)
您打开了一个文件,但没有保留对它的引用并关闭它。在Windows上(我假设您在Windows上运行此操作),当进程打开文件时,无法删除该文件

请尝试以下操作:

print "uploading files to %s" % Host
with open(Origin_dir+files, "rb") as f:
    ftp.storbinary('STOR ' + dest_dir+files, f, 1024)
ftp.close()
print 'FTP connection has been closed'
区别在于:

  • 使用with语句确保无论成功还是引发异常,文件都已关闭
  • open()
    调用的结果分配给名称(
    f
  • 将缺少的括号添加到
    ftp.close()
    ,以便调用该函数

那应该是
ftp.close()
而不是
ftp.close
?嗨-当我尝试删除“文件”时,这个变量收集目录中所有的*.mp4文件并上传它们-我似乎不知道上传后如何删除这些文件。因此,如果我尝试os.remove(files),请关闭脚本。我希望脚本在上传文件后删除这些文件。抱歉,我没有说得更清楚要让脚本删除文件,请使用
os.unlink()
函数。关于删除内容,我会提出警告。如果发生错误,那么您不希望丢失数据的唯一副本。可以释放文件-它们是源代码的转码,因此我们可以始终重新生成它们,它们将再次出现在源代码中。谢谢您-我正在Xserve或red hat linux上运行它。但让我试试你的建议。
print "uploading files to %s" % Host
with open(Origin_dir+files, "rb") as f:
    ftp.storbinary('STOR ' + dest_dir+files, f, 1024)
ftp.close()
print 'FTP connection has been closed'