首页 > 解决方案 > 为什么我的代码在复制文件扩展名时不起作用

问题描述

代码如下

公共文件夹中的文件是data.json, data.csv,1.json,2.csv

   import os
   mypath = r"C:\Users\user\Desktop\common"
   mypathjson = r"C:\Users\user\Desktop\common\json"
   mypathcsv = r"C:\Users\user\Desktop\common\csv"
   f = []
   for (dirpath, dirnames, filenames) in os.walk(mypath):
       f.extend(filenames)
       break
   extension = [i.split(".")[-1] for i in f]
   if extension == 'json':
       copyfile(mypath,mypathjson)
   
   if extension == 'csv':
       copyfile(mypath,mypathcsv)

标签: python

解决方案


这应该可以解决问题,具体取决于您的 copyfile 函数(我假设来自 shutil 的函数),您需要实际指定目标中的文件名。此外,扩展名只是一个扩展名列表,没有附加文件名,这使得它有点无用。

import os
from shutil import copyfile

mypath = r"C:\Users\user\Desktop\common"
mypathjson = r"C:\Users\user\Desktop\common\json"
mypathcsv = r"C:\Users\user\Desktop\common\csv"

f = []

for (_, _, fn) in os.walk(mypath):
    f.extend(fn)
    break

for each in f:
    if each.endswith(".json"):
        copyfile(each, os.path.join(mypathjson, each))
    elif each.endswith(".csv"):
        copyfile(each, os.path.join(mypathcsv, each))

推荐阅读