无法让 shutil.move 移动文件

cannot get shutil.move to move files

因此,在使用嵌套 for 循环对每个文件执行操作后,我尝试将我的 csv 文件从源文件夹移动到目标文件夹

下面是嵌套的 for 循环。

现在发生的事情是顶级文件被复制到数据库中的 table,但是在其内容被插入到 sql table,然后循环在第一个 运行 之后中断并在 try 块中打印错误。

如果我删除 shutil 语句,每个 csv 文件中的所有行都会成功复制到数据库中。

本质上我希望发生这种情况,但我也想在将所有数据复制到 table 后移动每个文件到 dest 文件夹。

此脚本将在电源自动操作时触发,该操作将 运行 一旦将文件添加到文件夹中。所以我不想 add/duplicate 来自同一文件的数据库中的行。

我还在这段代码下方添加了变量,因此您也可以了解函数的作用。

感谢您对此提供的任何帮助,如果需要更多说明,请告诉我。

我的尝试:

for file in dir_list:

    source = r"C:\Users\username\source\{}".format(file)
    df = pd.read_csv(path2)
    df = df.dropna()
    rows= df_to_row_tuples(df)

    for row in rows:
        cursor.execute(sql, row)
        conn.commit() 

    shutil.move(source, destination)  

变量:

def df_to_row_tuples(df):
    df = df.fillna('')
    rows = [tuple(cell) for cell in df.values]
    return rows

conn = sqlite3.connect(r'C:\Users\some.db')

cursor = conn.cursor()

sql = "INSERT INTO tblrandomtble VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
     
path = r'C:\Users\username\source'

dir_list = os.listdir(path)

source=""

destination= r"C:\Users\username\destination"

df = pd.DataFrame()

rows = tuple()

如果文件已经存在,移动函数将覆盖它,前提是您传递整个路径...包括文件名

所以将文件名添加到 shutil.move 函数的目标 arg...