pythonexcelweb交互插件_来一次Python与Excel的完美交互
使用python寫腳本文件,實現指定文件的copy
要求:
(1)一個目錄2000_PCAP,該目錄下存放著很多文件;
(2)一個表格(見附件),表格內存放著很多數字;
要求:在2000_PCAP目錄下,找出以附件表格“name_list.xlsx”內的數字為開頭的pcap文件,并把這些文件拷貝至與2000_PCAP目錄同級的2000_PCAP_part1目錄下。
解題思路:使用numpy,讀取Excel中所有數字,添加到一個新的列表中;
獲取指定文件夾下所有文件名(不帶后綴,只是數字),添加到另一個新的列表中;
循環文件名列表,去Excel中的數字列表中查找是否存在該數字,這里使用的是二分查找;
若能找到能復制該文件到指定目錄下。
大家可以先不看答案,自己嘗試一下,該怎么實現
參考答案:
1 導入模塊
import pandas as pd
import numpy as np
import os
import shutil
2 讀取Excel中所有的數字(沒有擴展,只讀取了Excel中的一列)
excel_path = './name_list.xlsx'
def read_excelfile(excel_path):
lst = pd.read_excel(excel_path)
num_list = np.array(lst).reshape(-1,).tolist()
return num_list
num_list = read_excelfile(excel_path)
num_list.sort()
3 讀取文件夾中所有文件的文件名(只提取數字部分)
file_dir = r'../2000_PCAP'
filename_list = []
def find_file(file_dir):
if os.path.isdir(file_dir):
for i in os.listdir(file_dir):
if not os.path.isdir(i):
name,pcap = i.split('.')
if name.isdigit():
filename_list.append(int(name))
else:
# 這里用了遞歸,防止出現二級目錄的情況,這里考慮的有點復雜,你可以選擇去除
find_file(i)
find_file(file_dir)
4 定義函數: 二者進行匹配查找,這里采用二分查找方式
def binary_chop(num_list,filename,start=0,end=None):
# 遞歸解決二分查找
end = len(num_list)-1 if end is None else end
mid_index = (end-start)//2 + start
if end >= start:
if filename > num_list[mid_index]:
return binary_chop(num_list,filename,start=mid_index+1,end=end)
elif filename < num_list[mid_index]:
return binary_chop(num_list,filename,start=start,end=mid_index-1)
elif filename == num_list[mid_index]:
return mid_index
else:
return '沒有此值'
else:
return '沒有此值'
5 定義函數:把找到的文件名復制到指定文件夾中
new_path = '../2000_PCAP_part1'
def copy_file(file_num_name,file_dir):
old_file = os.path.join(file_dir,str(file_num_name)+'.pcap')
new_file = os.path.join(new_path,str(file_num_name)+'.pcap')
shutil.copyfile(old_file,new_file)
6 實現上述最后兩步操作
for filename in filename_list:
# 執行二分查找,執行操作步驟4
index = binary_chop(num_list,filename)
if type(index) is int:
# 符合條件的文件名找到
file_num_name = num_list[index]
# 復制到新的文件夾中,執行操作步驟5
copy_file(file_num_name,file_dir)
使用python,可以極大的提高日常的工作效率,它強大的第三方模塊,注定應用面會很廣,有興趣的朋友真的可以抽空學一學。
以上只是我個人的理解,相信大家還會有很多很好的方法,歡迎交流,如果寫的有不對的地方,也歡迎批評指正。
總結
以上是生活随笔為你收集整理的pythonexcelweb交互插件_来一次Python与Excel的完美交互的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 装机人员工具_吕梁采购气伏式包装机-哪家
- 下一篇: python字典内存分析_Python减