2009-02-17 3 views
4

Сегодня мне нужно было разобрать некоторые данные из файла xlsx (Office open XML Spreadsheet). Я мог бы просто открыть файлы в openoffice и экспортировать в csv. Однако мне нужно будет повторно импортировать данные из этой таблицы позже, и я хотел исключить ручную работу.Где я должен писать свой код на Python?

Я искал в сети для XLSX синтаксического анализа, и все, что я нашел, был StackOverflow вопрос задает ту же вещь: Parsing and generating Microsoft Office 2007 files (.docx, .xlsx, .pptx)

Так я закатила самостоятельно.

Это 134 строки кода для разбора и доступа к электронной таблице и 54 строки кода модульных тестов. Это, конечно, проверяется только на 1 файл, который мне нужен, и кроме того, как он используется в модульных тестах, сейчас нет документации. Он использует zipfile, minidom, re и unittest, поэтому совершенно портативный и независимый от платформы.

Поскольку я не занимаюсь блогами, и у меня нет никакого желания превратить это в библиотеку python для OfficeOpen XML, я застрял, задаваясь вопросом, где я должен опубликовать этот код. Я решил проблему, что, я уверен, другие получат в будущем. Поэтому я хочу опубликовать свой код под общественным достоянием где-нибудь, чтобы кто-то мог скопировать и вставить в свое приложение и настроить исправление их проблемы.

Реализация проста, и вот краткий обзор от особенностей:

workbook = Workbook(filename) # open a file 
for sheet in workbook: pass # iterate over the worksheets 
workbook["sheetname"] # access a sheet by name, also possible to do by index from 0 
sheet["A1"] # Access cell 
sheet["A"] # Access column 
sheet["1"] # Access row 
cell.value # Cell value - only tested with ints and strings. 

Спасибо за все ответы. Я собирался разместить его на активизации, но страница продолжала сбой при отправке мне почты активации. Поэтому я не могу активировать свой код, чтобы опубликовать его.

Мой второй выбор был codeproject, и я написал хорошую статью о файле. К сожалению, эта страница падает, когда я пытаюсь отправить свой пост.

Так что я положил его на GitHub для любого, чтобы видеть и ответвляются: http://github.com/staale/python-xlsx/tree/master

Я не хочу, чтобы сделать всю работу за хостинг питон проекта, так что вне.

Принимая ответ git, поскольку это было единственное, что сработало для меня. И git камни.

Редактировать: Gah, потерял все мое сообщение в codeproject, и я сделал такую ​​приятную запись. Вверните его, я потратил больше времени, пытаясь поделиться этим, чем потребовалось его кодирование. Поэтому я призываю это сделать для себя, как сейчас. Если я не решит настроить его более позднее.

+0

Используйте тег 'excel-2007' вместо 'xlsx'. Следите за подсказками предложения при пометке своих вопросов: любой тэг с числом меньше 10 после его имени, вероятно, ошибочен. –

ответ

5

GitHub также будет отличным местом для этого поста. Тем более, что это позволит другим быстро разбить свои собственные копии и внести любые улучшения или модификации, в которых они нуждаются. Эти изменения затем будут доступны всем, кто их хочет.

+0

Вы думаете, что этот парень собирается изучить GIT только для того, чтобы опубликовать 154 строки исходного кода? Ха! – joeforker

+0

Я уже использую git daily :) – Staale

+0

Я тоже использую git, и мне нравится, как легко ... испортить мою рабочую копию! BURN! – joeforker

5

Вы должны разместить его here. Здесь есть много рецептов, и ваш будет идеально вписываться.

Stack Overflow предназначен для вики, где люди ищут вопросы и находят ответы. При этом, если вы хотите опубликовать его здесь, то, что вы сделаете, - это вопрос, имеющий отношение к вашему ответу, а затем ответьте на свой вопрос своим ответом.

+0

Я не собирался публиковать его на переполнении стека, так как я не думаю, что это добавит на этот сайт. Я отправлю его, чтобы активировать, когда их почтовая программа разрывается и отправляет мне почту активации, поэтому я могу зарегистрироваться. – Staale

1

err, с более описательным названием, я уверен, что многие люди нашли бы его здесь сами. (Но я не знал о не-вопросительном теге).

Следовательно, вы можете получить бесплатный блог и просто поместить в бит, который хотите поделиться, таким образом, у вас также будет постоянная онлайн-ссылка, когда вам это нужно.

+0

Я использовал пример, но хотел получить общий ответ. Я помню, что раньше был в той же ситуации, поэтому я подумал, что сообщество SO проведет для меня хорошие ответы. – Staale

+0

-1: Это не блог, не стенд для блога, ни что-нибудь вроде блога. Есть множество бесплатных блогов - используйте один из них как блог. Простая публикация кода закрывается как «Не настоящий вопрос». –

+0

ну, я действительно упоминал о получении бесплатного блога! – Sujoy

2

Если ваш код достаточно короткий, чтобы скопировать и вставить его, вы можете отправить его как Python recipe. Этот сайт является отличным ресурсом для изучения методов Python, и его лучшим содержанием было compiled into a book.

Если ваш код можно использовать повторно, вы должны отправить свой код Python в Python Package Index (pypi). Организуйте свой исходный код, read this tutorial о том, как написать setup.py для вашего пакета. После того как у вас есть бесплатный аккаунт pypi и написано setup.py, запустите python setup.py register, чтобы получить имя своего пакета и опубликовать его метаданные в индекс. setup.py может также upload ваш источник или двоичный код вашего пакета для pypi, например python setup.py sdist upload будет строить и загружать s ource dist ribution.

Как только ваш пакет является частью Индекса пакетов Python, другие программисты Python могут загрузить и установить его автоматически с помощью ряда инструментов, включая easy_install your_package.

+0

Я не хочу поддерживать проект. И я думаю, что небольшой фрагмент кода полезнее всего копировать и вставлять там, где это необходимо, пока кто-то не сделает что-то более серьезное. – Staale

1

В целом, CodeProject - отличное место для публикации кода, если вы готовы написать небольшую статью о коде. (Одна из хороших вещей в CodeProject заключается в том, что они требуют некоторой формулировки кода). Сайт получает необычайный объем трафика, поэтому все, что вы публикуете там, будет видно.

0

Могу ли я смиренно предложить свой сайт; http://utilitymill.com. Он позволяет не только публиковать свой код на Python, но и превращать его в запущенную веб-утилиту.

Пользователи могут обмениваться информацией о коде и списках, и даже дают вам автоматический RESTful API для этой утилиты бесплатно.

Смежные вопросы