为什么我得到这个 IOerror13 ?使用 python

Why do I get this IOerror13 ? Using python

import sys
import os
import re
import ftplib

os.system('dir /S "D:\LifeFrame\*.jpg" > "D:\Python\placestogo.txt"')   #this is where to search.
dat = open('placestogo.txt','r').read()

drives = re.findall(r'.\:\.+.+',dat)
for i in range(len(drives)):
    path = drives[i]
    os.system('dir '+ path +'\*.jpg > D:\python\picplace.txt')
    picplace = open('picplace.txt','r').read()
    pics = re.findall(r'\w+_\w+.\w+..jpg|IMG.+|\w+.jpg',picplace)
    for i in range(len(pics)):
        filename = pics[i]
        ftp = ftplib.FTP("localhost")
        print ftp.login("xxxxxxxx","xxxxxxxx")
        ftp.cwd("/folder")
        myfile = open(path,"rb")
        print ftp.storlines('STOR ' + filename, myfile)
        print ftp.quit()
        sys.exit()

我正在尝试将所有这些文件复制到我的 ftp 服务器,但它给我这个错误:

d:\Python>stealerupload.py
230 Logged on
 Traceback (most recent call last):
  File "D:\Python\stealerupload.py", line 22, in <module>
    myfile = open(path,"rb")
IOError: [Errno 22] invalid mode ('rb') or filename: '"D:\LifeFrame"'

谁知道问题出在哪里?我是 运行 管理员,文件夹应该有权限

在错误消息中,它显示 '"D:\LifeFrame"',在我看来你在 path 中有额外的引号。尝试添加 print path 以查看其值。

也许您想将数据从 filename 上传到您的服务器,而不是从 path,在这种情况下,错误消息中显示的 Python 就是错误所在:您应该改为打开 filename

错误似乎很明显。您正在尝试打开一个目录路径,这既不可能也不是您真正想要做的。这个位:

for i in range(len(drives)):
    path = drives[i]
    ...
    for i in range(len(pics)):
        ...
        myfile = open(path,"rb")

在循环中,您将 path 设置为 drives 元素之一。这些项目中的每一项似乎都是一个目录路径。然后你稍后尝试打开path,这是目录路径而不是文件。