python で word, excel, csv, json ファイルの読み書きをする。
http://
blog.csdn.net/pipisorry/article/details/50368044
<スパン python による word 文書の読み出しと書き込み
<スパン ワード文書からtxt文書への変換
def doc2txt():
'''
Convert doc document to txt document
:return:
'''
from win32com import client
INPUT_DIR = r'C:\Users\pi\Desktop\New folder'
OUTPUT_DIR = r'C:\Users\pi\Desktop\txts'
word = client.Dispatch('Word.Application')
for doc_name in listdir(INPUT_DIR):
print(doc_name)
doc_full_name = path.join(INPUT_DIR, doc_name)
Open(doc_full_name)
doc.SaveAs(path.join(OUTPUT_DIR, doc_name.split('.') [0]), 4)
doc.Close()
word.Quit()
wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreak
s = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnab
led = 20
wdFormatFlatXMLTemplate = 21
wdFormatFlatXMLTemplateM
acroEnabled = 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
wdFormatXMLDocumentMacro
Enabled = 13
wdFormatXMLTemplate = 14
wdFormatXMLTemplateMacro
Enabled = 15
wdFormatXPS = 18
def openpyxl_excel(FILENAME=r'C:\Users\pi\Desktop\1.xlsx'): ''' Can only manipulate office 2010+ version files ''' import openpyxl as xl wb = xl.load_workbook(FILENAME) # read excel file ws = wb.get_sheet_by_name(wb.get_sheet_names()[0]) # select a sheet pro_spec = [i[0].value for i in ws['H1:H' + str(ws.max_row)]] # select all data in a particular column # Operate on the selected data pro_spec = [item[0:item.rfind('*')] if item is not None and item.count('*') == 2 else item for item in pro_spec] for index, i in enumerate(ws['H1:H' + str(ws.max_row)]): i[0].value = pro_spec[index] # modify the data into the excel file cells wb.save(FILENAME) # save file changes
>>> xl.Workbook() # Create an empty Excel form with status active >>> a = range(1,10) # A Python list >>> a[1, 2, 3, 4, 5, 6, 7, 8, 9] >>> xl.view(a) # Display the Python list in Excel
>>> r = xl.view(range(1,10)) >>> r<ColumnVector range object for $A$2:$A$1048576 (visible only) >>>> r.get()[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] >>> sum(r) # ranges are iterable45.0
>>> r.get() # get updated values[1.0, 20.0, 8.0, 9.0]
>>> xl.selected_range().get()8.0
FILENAME = r'C:\Users\pi\Desktop\5-3 inbound.XlS' def xl_excel(): ''' Microsoft official xl module ''' import xl book = xl.Workbook(FILENAME) # open file pro_spec = book.get("H:H").get() # Get a column of data # Operate on the data pro_spec = [item[0:item.rfind('*')] if item is not None and item.count('*') == 2 else item for item in pro_spec][1:] xl.view(pro_spec, to=book.get("I:I")) # Write the data to the corresponding column
文字通り、対応するファイル形式に対応できるはずですが、office2003の場合、それほど多くの形式をサポートしていない可能性があります。ワードファイルからhtmlへの変換は、wdFormatHTML、wdFormatFilteredHTML(8番、10番に対応)の2つの形式がありますが、違いは、wdFormatHTML形式であれば、wdFormatHTML形式が使用されるということです。を使用した場合、ワードファイルには数式などのオレモノがwmf形式で格納されますが、wdFormatFilteredHTMLを使用した場合、数式画像はgif形式で格納され、視覚的にもwdFormatHTMLと比較して明らかにきれいに生成されたHTMLであることが確認できると思います。
いつ
ただし、PHP などの com を介して、任意の言語で office API を呼び出すことも可能です。
[ python read word document ]
[ Python-docx: ワードドキュメントの読み書きのためのPythonライブラリ ]
python による Excel 文書の読み書き
インスタンス
H列を以下のように変更します。
もちろん、これをメモ帳++にコピーして、(˶‾᷄ -̫̫ ‾᷅˵) 置き換えることもできます。* for \1 and you're good to go!
PythonでMicrosoft Excelを読むためのモジュール
openpyxlExcel 2010 のファイル (すなわち .xlsx) を読み書きするための推奨パッケージです。
xlrd
このパッケージは、古い Excel ファイル (例: .xls) からデータを読み込んで情報をフォーマットするためのものです。
インストール方法
pip install openpyxl基本的な使用方法のコード実装
def openpyxl_excel(FILENAME=r'C:\Users\pi\Desktop\1.xlsx'):
'''
Can only manipulate office 2010+ version files
'''
import openpyxl as xl
wb = xl.load_workbook(FILENAME) # read excel file
ws = wb.get_sheet_by_name(wb.get_sheet_names()[0]) # select a sheet
pro_spec = [i[0].value for i in ws['H1:H' + str(ws.max_row)]] # select all data in a particular column
# Operate on the selected data
pro_spec = [item[0:item.rfind('*')] if item is not None and item.count('*') == 2 else item for item in pro_spec]
for index, i in enumerate(ws['H1:H' + str(ws.max_row)]):
i[0].value = pro_spec[index] # modify the data into the excel file cells
wb.save(FILENAME) # save file changes
Python XLRD Error : formula/tFunc unknown FuncID:186
formula.pyファイル(D: \python3.4.2Libsite-packages↵xlrd)の186行目付近を探して、テキスト184とテキスト189の間に行を挿入してください。186: ('HACKED', 1, 1, 0x02, 1, 'V', 'V')
[ Python XLRD Error : formula/tFunc unknown FuncID:186 ]
[公式サイトトップページ
ホームページ
]
Microsoftの公式Excel管理Pythonモジュールです。Pyvot
<スパン 実装方法
前提条件として、プリインストールされている Windows用Python拡張モジュール(pywin32) とOffice 2010を使用します。
インストールコマンドは、pip install pyvot です。
マイクロソフト社製公式Excel管理Pythonモジュール
<スパン インポート方法
インポート xl
Pythonの内容をExcelに取り込む
<ブロッククオート>>> xl.Workbook() # Create an empty Excel form with status active
>>> a = range(1,10) # A Python list
>>> a[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> xl.view(a) # Display the Python list in Excel
PythonのリストがExcelにコピーされる。
Excelの内容をPythonのオブジェクトに変換する
Excelからデータを取得するには、操作するセルを表すxl.Rangeオブジェクトが必要です。xl.view関数は、データが格納されている選択されたセルの範囲を返します。
<ブロッククオート>>> r = xl.view(range(1,10))
>>> r<ColumnVector range object for $A$2:$A$1048576 (visible only)
>>>> r.get()[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
>>> sum(r) # ranges are iterable45.0
ビュー関数は実際にはA列全体を選択しますが、Range.getは中の有用なデータだけが必要であると仮定していることに注意してください。
これで、Excelでデータを修正し、それを取り出せるようになりました。例えば、Excelでいくつかの行を手動で削除し、Excelのデータを以下のように変更してみましょう。
>>> r.get() # get updated values[1.0, 20.0, 8.0, 9.0]
現在の選択範囲は、やはりRangeオブジェクトで、Excelで興味のあるデータをフィルタリングすることができます。
>>> xl.selected_range().get()8.0
Rangeオブジェクトを使用する際の注意点。
-
テーブルヘッダ行を除外する (get("ColumnName").get())。 が "ColumnName"を含んでいない場合)
-
使用されている範囲の内側からしか選択されません。これに対して、ネイティブのExcel COM APIには、列を選択すると100万個の空のセルが返されるという非常にもどかしい問題があります。
これに対して、Workbook.Rangeメソッドは、スタイルA1の参照と、名前付き範囲のみを扱います。
コードの実装
FILENAME = r'C:\Users\pi\Desktop\5-3 inbound.XlS'
def xl_excel():
'''
Microsoft official xl module
'''
import xl
book = xl.Workbook(FILENAME) # open file
pro_spec = book.get("H:H").get() # Get a column of data
# Operate on the data
pro_spec = [item[0:item.rfind('*')] if item is not None and item.count('*') == 2 else item for item in pro_spec][1:]
xl.view(pro_spec, to=book.get("I:I")) # Write the data to the corresponding column
[
Microsoft公式Excel管理Pythonモジュール
]
[ Pyvot入門 ]
しかし、lzはExcelのデータにはpandasを使うことを推奨しています。結局、dataframのデータ構造はExcelシートのようなものだからです。
python による csv 文書の読み書き
python が csv ファイルを読み込む
open('stock.tsv') を f とした場合。f_tsv = csv.reader(f, delimiter='\t')
for row in f_tsv:
# 行を処理する
python write csv ファイル
csv_w = csv.writer(csv_file)
csv_w.writerow(predict_label_list[label_start_no:label_start_no + line_no])
発生する問題
csv_w = csv.writer(csv_file, delimiter=',', lineterminator='\n')
そして、テキストモード、つまり、bのない、w,w+,a+などのモードは通せません。そうしないと、writerowを使ってcsvにコンテンツを書き込むときにCRになってしまい、余計な空白行が発生してしまうからです。
を参照してください。 データのエンコードと処理
関連
-
チェックされていないruntime.lastError: 接続を確立できませんでした。受信側が存在しません。
-
'dict' オブジェクトには 'has_key' という属性がありません。
-
IDLEのサブプロセスが接続されない場合の解決策 - fishcフォーラムより
-
Python エラー: int() の引数は文字列、バイトのようなオブジェクト、または数値でなければならず、 'list' ではありません。
-
Python Next SyntaxError: print' の呼び出しに括弧がありません。print(" ") のことですか?
-
ModuleNotFoundError: Pythonソリューションに'scipy'という名前のモジュールがありません。
-
import urllib.parse ImportError: parse という名前のモジュールがありません
-
メール送信を自動化するPython - Blog内のメッセージのメールアドレスを自動で取得して送信
-
Python で実行 TypeError: + でサポートされていないオペランド型: 'float' および 'str'.
-
tkinter モジュールを使った Python 倉庫番ゲーム
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
TensorFlowのエラー:ハッシュ化できない型:'numpy.ndarray'エラー
-
Abort trap: 6エラーに対するPythonの解決策
-
RuntimeWarning: ログでゼロによる除算に遭遇した
-
Pythonの実行時にSyntaxError: invalid syntaxが発生した場合の対処方法
-
python3 failed to start Fatal Python error: initfsencoding: unable to load file system codec
-
python 3.3.2 エラー。urllib2' という名前のモジュールがない ソリューション
-
知っておきたいPythonの一行コード50選
-
Pythonでフォルダをトラバースして大きなファイルを探す
-
[Python] ValueError: サポートされていない pickle プロトコルです。5 解決方法
-
float32とfloat64の本質的な違い(ディープラーニングへの型影響とpythonの活用)。