首页 > 解决方案 > 以编程方式在python中移动文件

问题描述

我试图简单地将文件从文件夹移动path1到文件夹path

import os
import shutil
path1 = '/home/user/Downloads'
file_dir = os.listdir(path1)
fpath = '/home/user/music'
for file in file_dir:
    if file.endswith('.mp3'):
        shutil.move(os.path.join(file_dir,file), os.path.join(fpath, file))

...但我收到此错误

TypeError: expected str, bytes or os.PathLike object, not list

标签: python

解决方案


首先,你不应该使用file作为变量名,它是 python 的内置,考虑使用f

另请注意,在该shutil.move行中,我已将您更改(os.path.join(file_dir,f)(os.path.join(path1,f). file_dir是一个列表,而不是您要查找的目录的名称,该值存储在您的path1变量中。

总而言之,它看起来像这样:

import os
import shutil
path1 = '/home/user/Downloads'
file_dir = os.listdir(path1)
fpath = '/home/user/music'
for f in file_dir:
    if f.endswith('.mp3'):
        shutil.move(os.path.join(path1,f), os.path.join(fpath, f))

推荐阅读