ホームページ  >  記事  >  バックエンド開発  >  Pythonを使用して添付ファイルを整理する方法

Pythonを使用して添付ファイルを整理する方法

不言
不言オリジナル
2018-06-04 17:42:501461ブラウズ

この記事には、Python を使用して添付ファイルを整理する方法に関する関連する知識ポイントがまとめられています。Python を学習している友人は、それを理解してテストすることができます。

現在、フォルダーに 500 件以上の履歴書があり、学校、学歴などの情報を知りたい場合、各単語を開いて表示する必要があり、時間がかかりすぎます。現時点では、Python がアクションを起こす必要があります。

目標

現在、スクリーンショットに似た単語が 600 個以上あります。これらを簡単に整理したいと思います。

ナビゲーション用に Excel を整理できます (ディレクトリに似ています)。 Excel でそれを見つけます。以下に示すように、必要な添付ファイルに移動します。

具体的な実装

目標を達成する方法について詳しく説明します。組織化の考え方は比較的単純です。つまり、すべての Word ファイルをスキャンして Word に配置します。キー情報が取得され、Excel に保存されます。

使用される主なモジュールは次のとおりです:

import xlsxwriter
import subprocess
import os
import docx
import sys
import re

xlsxwriter は主に Excel を操作するために使用されます。

サブプロセスは主にコマンドラインを呼び出すために使用されます。docxモジュールはdoc wordファイルを解析できないため、解析する前にdocファイルをdocxファイルに変換します。

os は主にフォルダーを走査してファイルを取得するために使用されます。

docx は主に Word 文書を解析するために使用されます。

ファイル名を統一する

まず、ファイル名を統一しましょう。subprocess.callを使ってコマンドを呼び出す際、スペースや特殊記号などはエスケープできずエラーの原因となるため、単純にクリーンアップしてください。この潜在的な問題の前に。

def remove_doc_special_tag():
  for filename in os.listdir(path):
    otherName = re.sub("[\s+\!\/_,$%^*(+\"\')]+|[+——()?【】“”!,。?、~@#¥%……&*()]+", "",filename) 
    os.rename(os.path.join(path,filename),os.path.join(path,otherName))

ファイルを走査します

その後、本題に取り掛かり、解析のために各ファイルを走査します:

path='/Users/cavin/Desktop/files'
for filename in os.listdir(path):
  ...具体逻辑...

まず、ここで問題が発生しました。docx モジュールは解析できません。ドキュメントについては、私は Mac を使用しているため、win32com モジュールを使用できません。その後、Google はコマンドを使用して doc を docx に変換できることを発見しました。

ここで、変換された docx ファイルのスタイルが失われることに注意してください。ただし、これはテキスト情報を取得する能力には影響しません。

このコードがあるのですが、それが doc ファイルの場合は、まず docx に変換され、解析後に削除されます。

if filename.endswith('.doc'):
  subprocess.call('textutil -convert docx {0}'.format(fullname),shell=True)
  fullname=fullname[:-4]+".docx"
  sheetModel= etl_word_files(fullname)#解析文本逻辑
  subprocess.call('rm {0}'.format(fullname),shell=True) #移除转换的文件

単語ファイルを解析します

次のステップは、docx モジュールを介して実装するのが簡単です。これは、各行を走査することです。そして、いくつかのキーワードと記号に基づいてデータを分析します (各履歴書の形式は基本的に同じです)

doc = docx.Document(fullname)
for para in doc.paragraphs:
  print(para.text)
  ...具体解析逻辑...

Excelに記入

解析されたデータはExcelに直接記入できます:

workbook = xlsxwriter.Workbook('report_list.xlsx')
worksheet = workbook.add_worksheet('list')
worksheet.write(0,0, '序号') 
worksheet.write(0,1, '姓名') 
worksheet.write(0,2, '性别') 
worksheet.write(0,3, '年龄') 
worksheet.write(0,4, '籍贯') 
worksheet.write(0,5, '目前所在地') 
worksheet.write(0,6, '学历')
worksheet.write(0,7, '学校')
worksheet.write(0,8, '公司')
worksheet.write(0,9, '职位')
worksheet.write(0,10, '文档链接')

ここでは主にドキュメントリンクについて話します 記入は他の人のためのものであるため、添付ファイルとExcelが同じフォルダー内にある限り、相対パスを使用してExcel関数HYPERLINK:

を使用できます

worksheet.write(index,10, '=HYPERLINK(\"./'+filename+'\",\"附件\")')

問題点

現時点では、対応する機能は基本的に実装できますが、完璧ではないのが主な理由であり、Wordの形式が標準ではないため、正確に実装する良い方法がありません。必要なデータを取得しますが、主な名前、学校など、ほとんどが捕捉されているため、より軽いタスクと考えることができます。

概要

Python を使用すると、ある程度の反復作業は軽減されますが、一部の非標準的なものに対処する良い方法はないようです。

これらの非標準に対応するためにロジックを追加することはできますが、労力と成果が比例しないことは明らかです。

効率を上げるために手元にあるツールを上手に活用するのが、愚かな作業の重複なのか、コードを使用して作業の重複を減らすのかについては、見方によって異なります。

関連する推奨事項;

Python を使用して HTTP サービスとファイル共有サービスを迅速に構築する

Python を使用してファイル コンテンツの変更コードを監視する

以上がPythonを使用して添付ファイルを整理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。