中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • python如何實現word文檔批量轉成自定義格式的excel文檔的思路

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

發布時間:2021-03-24 09:47:23 來源:億速云 閱讀:165 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python如何實現word文檔批量轉成自定義格式的excel文檔的思路的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

支持按照文件夾去批量處理,也可以單獨一個文件進行處理,并且可以自定義標識符

最近在開發一個答題類的小程序,到了錄入試題進行測試的時候了,發現一個問題,試題都是word文檔格式的,每份有100題左右,拿到的第一份試題,光是段落數目就有800個。而且可能有幾十份這樣的試題。

而word文檔是沒有固定格式的,想批量錄入關系型數據庫mysql,必須先轉成excel文檔。這個如果是手動一個個粘貼到excel表格,那就頭大了。

我最終需要的excel文檔結構是這樣的:每道題獨立占1行,每1列是這道題的一項內容,大概就是問題、選項A、選項B等等。

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

但word文檔是這種結構,如果按照網上通用的方式去轉,基本上你得到的結果就是一大坨文字都在一格里,根本不符合需求。

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

最后我想到了一個解決思路,可以實現這個需求,先看看我轉出來的結果:

python如何實現word文檔批量轉成自定義格式的excel文檔的思路 python如何實現word文檔批量轉成自定義格式的excel文檔的思路

這個格式雖然跟最終的有點差別,但是只要在excel文檔或者在代碼里稍微再修改一下,就能完全符合要求了。

廢話少說,先貼出代碼,看得懂的可以直接拿去用,看不懂的,可以看我后面的具體說明。

已經把它封裝成通用腳本了,你可以直接調用。

import pandas as pd
import os

# 初始處理函數1,先對初始處理結果進行判斷
def initail_handle_by_range(file_path, max_page_num, split_str):
 df = pd.read_table(file_path)
 # 2、先轉成Series
 S = pd.Series(df['column1'].values)
 # 3、轉成列表,列表的每個元素就是每個段落
 list = S.tolist()
 # 傳入一個max_page_num
 # 4、遍歷列表,取出每個段落,按“.”切割,取出第一個元素進行判斷,如果它是題號,就應該得到"1"或者"10"
 index_list = []
 for content in list:
 try:
  # 不是每個段落都有“.”可以切割的,會報錯,報錯就跳過
  first_str = content.split('%s'%split_str)[0]
  # 5、根據最大的題號,自動生成匹配的字符串,用來匹配題號(每個匹配字符串都放在patch_list中)
  patch_list = ['%d' % i for i in range(1, max_page_num + 1)]
  # 6、比對切割得到的第一個元素,如果它在匹配的字符串中,就獲取它在列表中的索引,并把獲取到的結果添加到列表index_list中,這就知道了每道題的開頭在l中的哪個位置了
  if first_str in patch_list:
  index = list.index(content)
  index_list.append(index)
 except:
  pass
 # 7、根據索引列表,我們可以知道每道題的第一段和最后一段在l中的哪個位置
 # index_list = [0, 8, 16]
 # print(index_list)
 # 先計算每道題長度是否一致,不一致的,設置is_same_length = False
 is_same_length = True
 length = index_list[1] - index_list[0]
 max_index = len(list)
 for i in index_list:
 # 如果i不是最后一個,那么start就是i,end就是i的下一個
 if i < index_list[-1]:
  start = i
  end = index_list[index_list.index(i) + 1]
 else:
  start = i
  end = max_index
 # 判斷長度是否一致,不一致就對長度進行比較,把大的賦值給長度
 if (end - start) != length:
  is_same_length = False
  if (end - start) > length:
  length = (end - start)

 result = [is_same_length, index_list, list, length]

 return result

# 初始處理函數1,先對初始處理結果進行判斷
def initail_handle_by_patchstr(file_path, patch_str, split_str):
 df = pd.read_table(file_path)
 # 2、先轉成Series
 S = pd.Series(df['column1'].values)
 # 3、轉成列表,列表的每個元素就是每個段落
 list = S.tolist()
 # 傳入一個max_page_num
 # 4、遍歷列表,取出每個段落,按“.”切割,取出第一個元素進行判斷,如果它是題號,就應該得到"1"或者"10"
 index_list = []
 for content in list:
 try:
  # 不是每個段落都有“.”可以切割的,會報錯,報錯就跳過
  first_str = content.split('%s'%split_str)[0]
  # 6、比對切割得到的第一個元素,如果它在匹配的字符串中,就獲取它在列表中的索引,并把獲取到的結果添加到列表index_list中,這就知道了每道題的開頭在l中的哪個位置了
  if first_str == patch_str:
  index = list.index(content)
  index_list.append(index)
 except:
  pass
 # 7、根據索引列表,我們可以知道每道題的第一段和最后一段在l中的哪個位置
 # index_list = [0, 8, 16]
 # print(index_list)
 # 先計算每道題長度是否一致,不一致的,設置is_same_length = False
 is_same_length = True
 length = index_list[1] - index_list[0]
 max_index = len(list)
 for i in index_list:
 # 如果i不是最后一個,那么start就是i,end就是i的下一個
 if i < index_list[-1]:
  start = i
  end = index_list[index_list.index(i) + 1]
 else:
  start = i
  end = max_index
 # 判斷長度是否一致,不一致就對長度進行比較,把大的賦值給長度
 if (end - start) != length:
  is_same_length = False
  if (end - start) > length:
  length = (end - start)

 result = [is_same_length, index_list, list, length]

 return result


# 傳入一個文件路徑和一個匹配的字符串,至少2個符號,例如"#."
def file_handle_by_patchstr(file_path, patch_str, split_str):
 result = initail_handle_by_patchstr(file_path, patch_str, split_str)
 # 接收初始處理函數的結果
 is_same_length = result[0]
 index_list = result[1]
 list = result[2]
 length = result[3]
 # 先根據每道題的長度構造一個空的dict,最后用來生成dataFrame
 dict = {}
 for i in range(1, (length + 1)):
 dict['colomn%d' % i] = []
 # print(dict)
 max_index = len(list)
 for i in index_list:
 # 如果i不是最后一個,那么start就是i,end就是i的下一個
 if i < index_list[-1]:
  start = i
  end = index_list[index_list.index(i) + 1]
 else:
  start = i
  end = max_index
 # 遍歷一輪獲得的結果就是我們要寫入excel的一行
 colomn = 1
 for index in range(start, end):
  # 遍歷一次獲得的結果就是我們要寫入excel的一格
  content = list[index]
  # 每遍歷一次就在一個dict中取出某一列,給它加上這個數據
  dict['colomn%d' % colomn].append(content)
  colomn += 1
  # 在遍歷到最后一輪的時候
  if index == (end - 1):
  # 判斷是否需要插入空值
  if not is_same_length and ((end - start) < length):
   # 可能缺了2列,也可能缺了1列
   content = ''
   # 如果只是缺了一列,在現有的index上,加1,就是下一列,補上空值
   if (length - (end - start)) == 1:
   colomn = (end - start) + 1
   dict['colomn%d' % (colomn)].append(content)
   else:
   # 如果缺失了2列以上,就遍歷,給之后的每一列都補上空值
   for i in range(length - (end - start)):
    colomn = length - i
    dict['colomn%d' % (colomn)].append(content)

 final_df = pd.DataFrame(dict)

 new_file_path = file_path.split('.')[0] + '.xlsx'

 final_df.to_excel(r'%s' % new_file_path)


def file_handle_by_range(file_path, max_page_num, split_str):
 result = initail_handle_by_range(file_path, max_page_num, split_str)
 # 接收初始處理函數的結果
 is_same_length = result[0]
 index_list = result[1]
 list = result[2]
 length = result[3]

 # 先根據每道題的長度構造一個空的dict,最后用來生成dataFrame
 dict = {}
 for i in range(1,(length+1)):
 dict['colomn%d'%i] = []
 max_index = len(list)
 for i in index_list:
 # 如果i不是最后一個,那么start就是i,end就是i的下一個
 if i < index_list[-1]:
  start = i
  end = index_list[index_list.index(i) + 1]
 else:
  start = i
  end = max_index
 # 遍歷一輪獲得的結果就是我們要寫入excel的一行
 colomn = 1
 for index in range(start, end):
  # 遍歷一次獲得的結果就是我們要寫入excel的一格
  content = list[index]
  # 每遍歷一次就在一個dict中取出某一列,給它加上這個數據
  dict['colomn%d' % colomn].append(content)
  colomn += 1
  # 在遍歷到最后一輪的時候
  if index == (end - 1):
  # 判斷是否需要插入空值
  if not is_same_length and ((end-start)<length):
   # 可能缺了2列,也可能缺了1列
   content = ''
   # 如果只是缺了一列,在現有的index上,加1,就是下一列,補上空值
   if (length-(end-start)) == 1:
   colomn = (end-start) +1
   dict['colomn%d'% (colomn)].append(content)
   else:
   # 如果缺失了2列以上,就遍歷,給之后的每一列都補上空值
   # 8-6 = 2, i = 0, 1
   for i in range(length-(end-start)):
    colomn = length - i
    dict['colomn%d' % (colomn)].append(content)
 final_df = pd.DataFrame(dict)

 new_file_path = file_path.split('.')[0] + '.xlsx'

 final_df.to_excel(r'%s'%new_file_path)

# 傳入一個文件夾路徑,最大的迭代數字,切割字符串
def dir_handle_by_range(dir_path, max_page_num, split_str):
 files = os.listdir(dir_path) # 獲取當前目錄的所有文件及文件夾
 for file in files:
 file_path = os.path.join(dir_path, file) # 遍歷獲取每個文件的絕對路徑
 result = initail_handle_by_range(file_path, max_page_num, split_str)
 # 接收初始處理函數的結果
 is_same_length = result[0]
 index_list = result[1]
 list = result[2]
 length = result[3]

 # 先根據每道題的長度構造一個空的dict,最后用來生成dataFrame
 dict = {}
 for i in range(1, (length + 1)):
  dict['colomn%d' % i] = []
 max_index = len(list)
 for i in index_list:
  # 如果i不是最后一個,那么start就是i,end就是i的下一個
  if i < index_list[-1]:
  start = i
  end = index_list[index_list.index(i) + 1]
  else:
  start = i
  end = max_index
  # 遍歷一輪獲得的結果就是我們要寫入excel的一行
  colomn = 1
  for index in range(start, end):
  # 遍歷一次獲得的結果就是我們要寫入excel的一格
  content = list[index]
  # 每遍歷一次就在一個dict中取出某一列,給它加上這個數據
  dict['colomn%d' % colomn].append(content)
  colomn += 1
  # 在遍歷到最后一輪的時候
  if index == (end - 1):
   # 判斷是否需要插入空值
   if not is_same_length and ((end - start) < length):
   # 可能缺了2列,也可能缺了1列
   content = ''
   # 如果只是缺了一列,在現有的index上,加1,就是下一列,補上空值
   if (length - (end - start)) == 1:
    colomn = (end - start) + 1
    dict['colomn%d' % (colomn)].append(content)
   else:
    # 如果缺失了2列以上,就遍歷,給之后的每一列都補上空值
    for i in range(length - (end - start)):
    colomn = length - i
    dict['colomn%d' % (colomn)].append(content)

 final_df = pd.DataFrame(dict)

 new_file_path = file_path.split('.')[0] + '.xlsx'

 final_df.to_excel(r'%s' % new_file_path)

# 傳入一個文件夾路徑和一個匹配的字符串,至少2個符號,例如"#."
def dir_handle_by_patchstr(dir_path, patch_str, split_str):
 files = os.listdir(dir_path) # 獲取目錄的所有文件及文件夾
 for file in files:
 file_path = os.path.join(dir_path, file) # 遍歷獲取每個文件的絕對路徑
 print(file_path)
 result = initail_handle_by_patchstr(file_path, patch_str, split_str)
 # 接收初始處理函數的結果
 is_same_length = result[0]
 index_list = result[1]
 list = result[2]
 length = result[3]
 # 先根據每道題的長度構造一個空的dict,最后用來生成dataFrame
 dict = {}
 for i in range(1, (length + 1)):
  dict['colomn%d' % i] = []
 # print(dict)
 max_index = len(list)
 for i in index_list:
  # 如果i不是最后一個,那么start就是i,end就是i的下一個
  if i < index_list[-1]:
  start = i
  end = index_list[index_list.index(i) + 1]
  else:
  start = i
  end = max_index
  # 遍歷一輪獲得的結果就是我們要寫入excel的一行
  colomn = 1
  for index in range(start, end):
  # 遍歷一次獲得的結果就是我們要寫入excel的一格
  content = list[index]
  # 每遍歷一次就在一個dict中取出某一列,給它加上這個數據
  dict['colomn%d' % colomn].append(content)
  colomn += 1
  # 在遍歷到最后一輪的時候
  if index == (end - 1):
   # 判斷是否需要插入空值
   if not is_same_length and ((end - start) < length):
   # 可能缺了2列,也可能缺了1列
   content = ''
   # 如果只是缺了一列,在現有的index上,加1,就是下一列,補上空值
   if (length - (end - start)) == 1:
    colomn = (end - start) + 1
    dict['colomn%d' % (colomn)].append(content)
   else:
    # 如果缺失了2列以上,就遍歷,給之后的每一列都補上空值
    for i in range(length - (end - start)):
    colomn = length - i
    dict['colomn%d' % (colomn)].append(content)
 final_df = pd.DataFrame(dict)
 print(final_df)
 print(file_path)

 new_file_path = file_path.split('.')[0] + '.xlsx'
 print(new_file_path)

 final_df.to_excel(r'%s' % new_file_path)


if __name__ == '__main__':
 # 文件路徑
 # file_path = r'C:\Users\Administrator\PycharmProjects\exchange_file\2018-04 技能操作真題.txt'
 # 文件夾路徑
 dir_path = r'C:\Users\Administrator\PycharmProjects\exchange_file\mytest'

 # 根據數字處理具體文件,參數傳文件路徑,可迭代的最大數可自定義,分隔符也自定義
 # file_handle_by_range(file_path, 100, '.')

 # 根據自定義匹配符處理具體文件,參數傳文件路徑,匹配符可以自定義,切割符也可以自定義
 # file_handle_by_patchstr(file_path, '#', '.')

 # 根據數字處理具體整個文件夾,參數傳文件路徑,可迭代的最大數可自定義,分隔符也自定義
 # dir_handle_by_range(dir_path, 100, '.')

 # 根據自定義匹配符處理具體文件夾,參數傳文件路徑,匹配符可以自定義,切割符也可以自定義
 # dir_handle_by_patchstr(dir_path, '#', '.')

一、先說一下實現這個需求的處理邏輯

解決這個需求的關鍵點是什么: 1、python怎么讀取這個文件的內容? python有相關的word操作庫可以讀取,但是讀取到的結果不方便操作。我們最終是要讓它生成excel文件的,所以可以用python非常強大的科學計算包pandas來讀取操作數據更好。

但pandas不能直接讀取word文件,所以,需要先把它轉成txt文檔,這一步很簡單,打開word,全部復制到一份新的txt文件中就行了。(注意要在第一行給它加上列名,我直接加了個colomn1,代表是第一列)簡單處理后的txt文檔的結構類似這樣:

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

2、讀取到的數據如何處理?

使用pandas讀取到的數據是一個dataFrame,dataFrame的結構就類似于我們在excel文檔里面那樣行列分明的。但是,它從txt讀取出來的格式是全部內容都視為1列的,而txt中的每一段,在它這里就是每一行(注意是每一段對應一行,而不是每一行對應每一行)預覽一下:結果顯示800行,1列。也就是在txt文檔中有800個段落。

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

3、接下來怎么處理呢?

pandas強大的地方就在這里了,它可以直接把這1列的內容全部轉成Series,Series是什么你可以不用管,你只需要知道Series可以直接轉成列表list就行了。有了list我們就方便操作了。

以上幾步就實現了從word里面讀取數據,并轉化成python的數據類型list了。list里面的每個元素,就等同于我們word里面的每一個段落。控制臺打印出來的就是這樣:下面的800是計算出這個列表的長度,代表有800個元素。

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

接下來我們的需求就變成了:怎么把一個列表,轉成有明確行列結構的excel表格了。

這個要分為2種情況來說: 1、你的word文檔結構相對合理些,每道題都固定是X個段落(例如每道題都是8個段落),這個解決就很簡單了。因為這種情況對應就是在list中,每8個元素構成了1道題,你只要按照規律,8個8個取出,最后批量寫入excel就行了。(這種解決起來比較簡單,就不詳細說了)

2、另一種情況比較麻煩,就是word文檔的結構不規范,有的題目可能是8個段落,有的可能是7段,有的是6段。那么要怎么解決呢?

解決這個問題有幾個關鍵點: 1、excel表格是行列結構的,它每一行的數據來源于這個txt文檔的第幾行?(也就是list里面的第幾個元素)所以我們只要把每道題在list中的索引找出來就行了。

觀察一下源數據,它每道題的開頭都是數字加1個英文符號“.”,例如:“1.”和“2.”,最大的是"100.",并且其他段落的開頭都不會出現這個結構。那么就簡單了,我先構造出一個patch_list=[‘1', ‘2', ‘3'…‘100'],用來做匹配。

然后再遍歷源數據列表,對列表的每個元素按“.”號切割,切割后拿到它的第一個元素,拿這個元素跟pacth_lis進行匹配,如果它是在patch_list中的,就代表它是每道題的開頭。此時就記錄下它的索引,并且把這個索引值存放到一個新列表index_list中。下面是我獲取到的index_list:

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

0代表了第一道題是在列表的第1個元素開始的,8代表第二道題在列表的第9個元素開始。

于是我們就知道每道題的開頭是在列表中的哪個位置了。

2、拿到了每道題的索引,然后怎么做呢?最終我們是要轉存到excel文檔中的, pandas怎么轉excel?很簡單的,只要你構造出一個dataFrame出來,調用pandas的to_excel方法,就能存入excel文檔了。

3、問題的關鍵就變成了,有了每道題的索引,怎么把它轉成dataFrame結構。下面演示一下,假如你想要構造一個dataFrame,需要什么樣的數據結構,構造出來的dataFrame在控制臺的輸出結果是怎么樣的,最后生成的excel表格是怎么樣的。

dict = {'colomn1': ['問題1', '問題2', '問題3'],
 'colomn2': ["A:問題1的A選項", "A:問題2的A選項", "A:問題3的A選項"],
 'colomn3': ['B:問題1的B選項', 'B:問題2的B選項', 'B:問題3的B選項']}
df = pd.DataFrame(dict)
print(df)
df.to_excel(r'C:\Users\Administrator\PycharmProjects\exchange_file\test.xlsx')

這個就是調用pandas的DataFrame方法,用字典dict生成的一個dataFrame數據。這個dataFrame在控制臺打印出來就是:

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

這個結構存入excel就是對應表格的行和列了。這個結構就符合我的實際需求了。

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

所以我們要構造出這個dataframe的關鍵就是:把所有數據梳理一遍,構造成類似這樣的一個字典:

dict = {'colomn1': ['問題1', '問題2', '問題3'],
 'colomn2': ["A:問題1的A選項", "A:問題2的A選項", "A:問題3的A選項"],
 'colomn3': ['B:問題1的B選項', 'B:問題2的B選項', 'B:問題3的B選項']}

那么怎么構建這個dict呢?

我們源數據轉出來的list結構是類似這樣的: list = [‘問題1',“A:問題1的A選項”, ‘B:問題1的B選項'…‘問題2',“A:問題2的A選項”, ‘B:問題2的B選項']

而我們前面得到的index_list=[0, 8, 16。。。。] 它記錄了“問題1”,“問題2”等等直到“問題100”是在哪個位置開始的,所以我們只需要把index_list遍歷一下,輪流取出它的每個元素,它就是每道題的開始位置,然后拿到緊跟在這個元素的下一個是什么,用這個減去1就知道了每道題的開始位置start和結尾位置end是多少了。

接著使用

for i in range(start, end):
	content = list[i]

就可以輪番從list中取出每道題的各項內容,取到的第一個就加到dict的colomn1列表中,第二個就加到dict的colomn2中,按照這個規律,就能把list的內容分開插入到dict中的各個列表中了。

但在這個過程中,可能你每道題的段落數目不一致,也就是你按照這個規律從list中取出的元素,可能每次取出的數量都不一樣。這點需要注意,如果沒有對它進行處理,最后會導致轉出來的文件內容錯位了,例如你的文檔里面,第一題有8個段落,第二題只有7個,第三題有8個段落,沒處理這個問題的話,最后第三題的第8個段落,就會跑到第7題那邊了。并且最終dataFrame會無法生成excel文件。

那么這個問題怎么解決呢?

在正式調用處理函數生成excel文件之前,可以先對文件預處理,拿到它們的數據進行判斷,如果判斷到它每個間隔不一樣,有的缺少段落,那么就讓數據預處理函數返回一個值為False,間隔一樣就返回True。接著在真正的數據提取環節,根據這個進行判斷,如果判斷到它值是Fales,那么就在每一輪遍歷提取數據的最后一次遍歷,一次性在它后面的缺失數據的列加上空字符串,作為占位用,這樣最后得到的列表長度就都一樣了,并且在最后生成的excel表中,它是一個空格。

最后用dict生成dataFrame,再寫入excel文檔,我們就大功告成了。

二、再說一下具體怎么使用:

一、運行必須的工具 1、python解釋器(pycharm或其他); 2、python自帶模塊:os; 3、自行安裝模塊:pandas,openpyxl;

自行安裝的模塊,在控制臺pip install pandas和pip install openpyxl就行了。

二、怎么調用:

1、先要做數據預處理:先要把word文檔的內容復制到txt文檔中,并且在第一行加上"column1",處理后像下面這樣:

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

接著要看你的文檔內容是否有題號,如果有的話:比如像我這個,有具體的題號1-100題,并且它的寫法都是“1.”,在題號后面跟了個英文字符'.‘,順序遞增到100。

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

那么你就可以調用file_handle_by_range。

你給它傳第一個參數是個具體的文件路徑,它就會去打開這個文件,讀取里面的內容。

傳的第二個參數是100,它就會自動生成1到100的字符串,用來匹配識別你的每道題的開頭在哪個位置。(如果你最大的題號是200,就寫200,可以寫多,但不能寫少,少了識別到的內容會缺失)

傳的第三個參數是'.‘,它就會按照'.'去切割每一行的內容,拿到第一個“.”號前面的內容,用來跟它生成的匹配字符做比對,比對成功了,它就默認該行是你想要寫到excel表格里的第一列,接在它后面的每個段落,會自動插入到它后面的列。

直到匹配到下一個“數字.”開頭的,又重復這個過程。

如果你的文檔里面并不是像我這樣,沒有順序遞增的題號,你可以手動給每個你想要放在表格中第一列的段落,在它前面加標識符,例如“####.”,注意最后是有個小點的。像下面這樣:

python如何實現word文檔批量轉成自定義格式的excel文檔的思路

接著調用

for i in range(start, end):
	content = list[i]

那么它就默認按照'.‘去切割每行內容,并且按照####來匹配識別切到的內容,如果切到在'.'前面的是“####”,那么它就默認這一段是你想存到excel表第一列的段落,在它后面的幾段,都會按照每個段落存入一格去處理。直到下一個“####.”出現。

2、可調用的有4個函數: 2.1、假如你只想處理一個具體的文檔,并且它有具體的題號,最大題號是100,并且它后面跟的是一個'.',那么就按照下面這個調用

file_path = r'C:\Users\Administrator\PycharmProjects\exchange_file\2018-04 技能操作真題.txt'
 file_handle_by_range(file_path, 100, '.')

2.2、根據自定義匹配符處理具體文件,參數傳文件路徑,匹配符可以自定義,切割符也可以自定義

file_path = r'C:\Users\Administrator\PycharmProjects\exchange_file\2018-04 技能操作真題.txt'
file_handle_by_patchstr(file_path, '#', '.')

2.3、根據數字處理具體整個文件夾,參數傳文件路徑,可迭代的最大數可自定義,分隔符也自定義。(注意文件夾路徑,最后是不跟文件名的,它是個文件夾,不是具體文件路徑)

# 文件夾路徑
dir_path = r'C:\Users\Administrator\PycharmProjects\exchange_file\mytest'
dir_handle_by_range(dir_path, 100, '.')

2.4、根據自定義匹配符處理具體文件夾,參數傳文件路徑,匹配符可以自定義,切割符也可以自定義

# 文件夾路徑
dir_path = r'C:\Users\Administrator\PycharmProjects\exchange_file\mytest'
dir_handle_by_patchstr(dir_path, '#', '.')

感謝各位的閱讀!關于“python如何實現word文檔批量轉成自定義格式的excel文檔的思路”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清丰县| 阜阳市| 奇台县| 特克斯县| 兴城市| 扎鲁特旗| 郯城县| 长汀县| 五峰| 修水县| 旅游| 同心县| 集贤县| 昭苏县| 汉寿县| 富川| 鸡东县| 松江区| 舟山市| 阿拉善盟| 嘉荫县| 威宁| 车致| 铜鼓县| 嘉义市| 通渭县| 正宁县| 秦安县| 齐齐哈尔市| 河间市| 西宁市| 临沭县| 固安县| 邓州市| 油尖旺区| 盐边县| 虞城县| 清新县| 肥东县| 穆棱市| 奎屯市|