Python 如何根据excel整理文件
我有一个Excel文件,其中包含很长的产品标签名,如(目前,仅处理其中3个):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
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文件。