import pdfplumber
import os
import shutil
# 要用到pdfplumber
# os主要用於獲取pdf的檔名
# shutil主要用於copy原pdf檔案,到新的檔名
# 首先獲取所有檔名
file_list = os.listdir(
)# 建立乙個空的「報銷單」檔名list
bxd_filename_list =
pre_bxd =
'滴滴出行行程報銷單'
pre_fp =
'滴滴電子發票'
# 獲得所有的報銷單列表
for fname in file_list:
if'.pdf'
in fname and pre_bxd in fname:
下面讀取報銷單裡面的資訊,包括日期 + 城市 + 出發地點
# 遍歷報銷單列表
for bxd_filename in bxd_filename_list:
# 獲得報銷單的字尾部分,即'滴滴出行行程報銷單'之後的所有編號、副檔名等
# 這樣不管原來的檔名後面是什麼樣子的,
# 只要編號一樣的報銷單和發票就有了相同的名字。
ex_name = bxd_filename[
len(pre_bxd):]
with pdfplumber.
open
(bxd_filename)
as pdf:
# 獲得檔案的第一頁
page = pdf.pages[0]
# 獲得表單
table = page.extract_tables(
)# 獲得日期 + 城市 + 出發地點
f_rename = table[0]
[1][
2].split(
' ')[0
]+' '+table[0]
[1][
3]+' '
+table[0]
[1][
4]# 根據獲得的日期、出發點,重新命名檔案
shutil.copyfile(bxd_filename, f_rename+pre_bxd+
'.pdf'
) fp_filename = pre_fp + ex_name
shutil.copyfile(fp_filename, f_rename+pre_fp+
'.pdf'
)
這樣一來便獲得了整齊的重新命名以後的發票和報銷單檔名。
最大的好處,是在電腦中可以存放大量的電子發票,直接用everything檢索、以後填寫報銷非常方便。一眼就知道哪些報銷了,哪些還沒有填報。
效果如下
全部的**如下:
import pdfplumber
import os
import shutil
file_list = os.listdir(
)bxd_filename_list =
pre_bxd =
'滴滴出行行程報銷單'
pre_fp =
'滴滴電子發票'
# 獲得所有的報銷單列表
for fname in file_list:
if'.pdf'
in fname and pre_bxd in fname:
# 遍歷報銷單列表
for bxd_filename in bxd_filename_list:
# 獲得報銷單的字尾部分,即'滴滴出行行程報銷單'之後的所有編號、副檔名等
ex_name = bxd_filename[
len(pre_bxd):]
with pdfplumber.
open
(bxd_filename)
as pdf:
# 獲得檔案的第一頁
page = pdf.pages[0]
# 獲得表單
table = page.extract_tables(
)# 獲得日期 + 出發地點
f_rename = table[0]
[1][
2].split(
' ')[0
]+' '+table[0]
[1][
3]+' '
+table[0]
[1][
4]# 根據獲得的日期、出發點,重新命名檔案
shutil.copyfile(bxd_filename, f_rename+pre_bxd+
'.pdf'
) fp_filename = pre_fp + ex_name
shutil.copyfile(fp_filename, f_rename+pre_fp+
'.pdf'
)
利用CPU多核處理
在mysql5.5.x後,可以利用innodb read io threads和innodb write io threads,取代之前的innodb file io threads引數,在linux平台上就可以根據cpu核數來更改相應的引數值,預設是4.比如cpu是2棵8核的,可以設定 innod...
利用Excel VBA處理文件
遇到如下格式的一篇word文件,格式混亂,不適合列印 由於沒有接觸過word vba,因此決定用excel vba來處理這篇文件。首先全選該文件的內容,貼上到excel文件中。然後建立乙個新的macro,修改該macro為以下 sub formatsheet formatsheet macro ma...
每日一滴(實踐) NLP之處理停用詞
顧名思義,沒用的單詞,也叫停止詞 即,執行資訊檢索任務或其他自然語言任務時需要過濾掉的詞 例如 to is the 這些詞對句子整體的理解沒多大作用,考慮到處理效率,則需要在處理資料前將這些詞去掉 這也是資料標準化中的一步 即將待處理文字中的停用詞去掉。from nltk.corpus import...