.doc, .ppt ve .xls dosyalarını python kullanarak linux üzerinde düz metne dönüştürmek için herhangi bir yöntem öneriliyor mu? Gerçekten herhangi bir dönüşüm metodu faydalı olacaktır. Açık Ofis'i kullanmayı daha önce inceledim ama Open Office'i kurmak zorunda kalmayacak bir çözüm istiyorum.python microsoft office doc'lerini linux üzerinde düz metne dönüştürür
cevap
Komut satırı çözümü için giderdim (ve sonra araçları Python'dan çalıştırmak için Python subprocess module kullanın). msword (catdoc), Excel (xls2csv) ve ppt (catppt) için
Dönüştürücüler (kaynak şeklinde) bulunabilir burada: http://vitus.wagner.pp.ru/software/catdoc/.
Catppt'ın kullanışlılığı hakkında yorum yapamam ama catdoc ve xls2csv harika çalışıyor!
Ancak dağıtım dağıtım havuzlarınızı ilk kez aradığınızdan emin olun ... Örneğin, uduntu'da catdoc sadece hızlı bir şekilde alınabilir.
1 ile gitti. – Droogans
Microsoft Office belgelerini HTML'ye veya başka biçimlere dönüştürmek için kullanılan alışılmış araç, daha sonra vwWare olarak yeniden adlandırılmış olan mswordview'dir. Eğer bir komut satırı aracı arıyorsanız
, aslında dönüşümü gerçekleştirmek için AbiWord kullanmanızı tavsiye: Bir kütüphanede arıyorsanız
AbiWord --to=txt
, wvWare overview page günü başlayacak. Ayrıca a list of libraries and tools which read MS Office documents'u da korurlar.
Excel Elektronik Tabloları ile ilgili olarak xlwt iyi. Ancak, .doc
ve .ppt
dosyalarında yardımcı olmaz.
Sen OpenOffice via Python API erişebilirsiniz. bir üs olarak kullanıyor
Dene: Komut satırında http://wiki.services.openoffice.org/wiki/Odt2txt.py
XML tabanlı ofis dosyalarını geçmişte kullanılabilir bir şeye işlemek için XSLT'yi kullanmanın bazı başarıları oldu. Mutlaka python tabanlı bir çözüm değil, ama işi halleder.
Aynı sorun burada. Aşağıda, "docs /" içindeki tüm doc dosyalarını catdoc kullanarak dir 'txts /' dizinine dönüştürmek için kullanacağım basit bir betik var. Umarım yardımcı olur birisi:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import glob, re, os
f = glob.glob('docs/*.doc') + glob.glob('docs/*.DOC')
outDir = 'txts'
if not os.path.exists(outDir):
os.makedirs(outDir)
for i in f:
os.system("catdoc -w '%s' > '%s'" %
(i, outDir + '/' + re.sub(r'.*/([^.]+)\.doc', r'\1.txt', i,
flags=re.IGNORECASE)))
Haha ... + 1 python kullanmak için ... bash kullanmak için. OP'nin istekleri ile iyi iş çıkarıyorum. ': D' – Droogans
@Droogans: o, bu çok dilli hızlı komut dosyaları gerçekten ironik. Bash yapmaya başladım, çıkış dosya ismini değiştirmek için kurallar garipleşti, sonra sadece bir python senaryosunun içine koydum. Alt işlem modülü, boru vb. Kullanmadan daha kolay – neves
ben OP istediğin gibi açık ofis formatları kullanmamak için bir komut satırı çözümü – Tim