Python 如何根据excel整理文件

Python 如何根据excel整理文件,python,excel,python-2.7,Python,Excel,Python 2.7,我有一个Excel文件,其中包含很长的产品标签名,如(目前,仅处理其中3个): 4049047000037 4049047000044 4049047118954 我的桌面上有一个名为“1”的文件夹,其中包含.jpg文件,标记名如下: 4049047000037.jpg 4049047000044.jpg 4049047118954.jpg 我想写一个代码,如果标签名在我的excel中,我想把那个.jpg文件复制到另一个文件夹 import os import pandas as pd movd

我有一个Excel文件,其中包含很长的产品标签名,如(目前,仅处理其中3个):

  • 4049047000037
  • 4049047000044
  • 4049047118954
  • 我的桌面上有一个名为“1”的文件夹,其中包含.jpg文件,标记名如下:

  • 4049047000037.jpg
  • 4049047000044.jpg
  • 4049047118954.jpg
  • 我想写一个代码,如果标签名在我的excel中,我想把那个.jpg文件复制到另一个文件夹

    import os
    import pandas as pd
    movdir = ["C:\Users\muhammedcan\Desktop\1"]
    basedir = "C:\Users\muhammedcan\Desktop\2"
    i=0
    
    #to see what i have in my folder
    print os.listdir("C:/Users/muhammedcan/Desktop/1/")
    
    df= pd.read_excel("deneme.xls", sheetname= "sayfa4")
    df1= df.columns[1]
    
    listSepalWidth = df[df1]
    print listSepalWidth
    
    #to make file name and product tag name same
    for i in listSepalWidth:
        i=str(i)+(".jpg")
        print i
    
    如果我的excel中存在文件,您能帮助我将其复制到其他文件中吗

    这是我到目前为止的结果:

    ['4049047000037.jpg', '4049047000044.jpg', '4049047000068.jpg', 
    '4049047000075.jpg', '4049047000082.jpg', '4049047000105.jpg', 
    '4049047118947.jpg', '4049047118954.jpg']
    
    4049047000037.jpg
    4049047000044.jpg
    4049047118954.jpg
    4049047000068.jpg
    4049047000075.jpg
    4049047000082.jpg
    4049047118947.jpg
    4049047000105.jpg
    
    我使用了下面的代码,我收到了错误

    from shutil import copyfile
    
    copyfile("C:\Users\muhammedcan\Desktop\1", "C:\Users\muhammedcan\Desktop\2")
    
    错误是:

        C:\Python27\python.exe "C:/Users/muhammedcan/Desktop/summer 
        courses/programing/MP4/solution/my_work.py"
        Traceback (most recent call last):
      File "C:/Users/muhammedcan/Desktop/summer courses/programing/MP4/solution/my_work.py", line 3, in <module>
        copyfile("C:\Users\muhammedcan\Desktop\1", 
    
    C:\Python27\python.exe“C:/Users/muhammedcan/Desktop/summer
    课程/编程/MP4/solution/my_work.py”
    回溯(最近一次呼叫最后一次):
    文件“C:/Users/muhammedcan/Desktop/summer courses/programming/MP4/solution/my_work.py”,第3行,在
    复制文件(“C:\Users\muhammedcan\Desktop\1”,
    

    流程已完成,退出代码为1

    以下内容应满足您的要求:

    import os
    import glob
    import pandas as pd
    import shutil
    
    source_folder = r"C:\Users\muhammedcan\Desktop\1"
    destination_folder = r"C:\Users\muhammedcan\Desktop\2"
    
    available_filenames = [os.path.basename(fn) for fn in glob.glob(os.path.join(source_folder, '*.jpg'))]
    df = pd.read_excel("deneme.xls", sheetname="sayfa4")
    
    for tag_name in df.iloc[:,1]:
        filename = "{}.jpg".format(tag_name)
    
        if filename in available_filenames:
            print "{} - found".format(filename)
            shutil.copyfile(os.path.join(source_folder, filename), os.path.join(destination_folder, filename))
        else:
            print "{} - not found".format(filename)
    
    如果首先创建一个在
    source\u文件夹
    中找到的
    .jpg
    文件名列表,然后将Excel文件加载到pandas中并在第二列上迭代。如果在
    可用\u文件名列表中找到标记名
    shutil.copyfile()
    函数用于将文件从
    1
    复制到
    2
    。注意
    os.path.join()
    用于将文件的各个部分安全地连接在一起


    要使其成为一个函数,让您也可以使用“pdf”,您可以执行以下操作:

    import os
    import glob
    import pandas as pd
    import shutil
    
    source_folder = r"C:\Users\muhammedcan\Desktop\1"
    destination_folder = r"C:\Users\muhammedcan\Desktop\2"
    
    df = pd.read_excel("deneme.xls", sheetname="sayfa4")
    
    
    def copy_files(source_folder, destination_folder, extension):
        available_filenames = [os.path.basename(fn) for fn in glob.glob(os.path.join(source_folder, '*.{}'.format(extension)))]
    
        for tag_name in df.iloc[:,1]:
            filename = "{}.{}".format(tag_name, extension)
    
            if filename in available_filenames:
                print "{} - found".format(filename)
                shutil.copyfile(os.path.join(source_folder, filename), os.path.join(destination_folder, filename))
            else:
                print "{} - not found".format(filename)
    
    copy_files(source_folder, destination_folder, 'jpg')            
    copy_files(source_folder, destination_folder, 'pdf')                   
    

    这假设两者使用相同的
    deneme.xls
    。如果不是,则可以将其作为另一个参数传递给函数。

    可能重复我是python新手,我无法理解“src”、“dst”你能在代码方面帮我做些什么吗?@deepspace你有试着理解吗?这在重复问题的答案中得到了很好的解释:
    将名为src的文件的内容复制到名为dst的文件中
    我已经试着找出它的用途三天了。。很容易判断人。tnx任何方式。@deepspace“将名为src的文件的内容复制到名为dst的文件中"不清楚?谢谢@Martin Evans!我可以为pdf文件应用相同的功能吗?最简单的方法是将其设置为函数,并将所需的扩展名作为参数传递。我很感谢@Martin。我现在还有一个isue。在某些单元格中,我有如下数据:456.jpg,457.jpg。我不知道如何克服此问题。我想从代码中找到这两个456jpg和457.jpg文件。