日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

pythonexcelweb交互插件_来一次Python与Excel的完美交互

發布時間:2025/4/5 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的完美交互的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。