VBA, Perl or Python

User avatar
kyk
Уже с Приветом
Posts: 31438
Joined: 21 Nov 2004 05:12
Location: камбуз на кампусе

Re: VBA, Perl or Python

Post by kyk »

liamkin wrote: 23 Sep 2019 15:00сдается мне, что утилитка join любит tab-delimited файлы. CSV для них хуже яду. Сконвертируйте CSV в tab-delimited
а тот факт, что есть пробелы внутри второго и последующих fields, т.е. типа такого "Honours Bachelor of Science"
не помешает конвертации в tab-delimited?
Лучше переесть, чем недоспать! © Обратное тоже верно :umnik1:
User avatar
kyk
Уже с Приветом
Posts: 31438
Joined: 21 Nov 2004 05:12
Location: камбуз на кампусе

Re: VBA, Perl or Python

Post by kyk »

Flash-04 wrote: 23 Sep 2019 15:24 CSV to TSV

Code: Select all

#!/usr/bin/env python
import csv, sys
csv.writer(sys.stdout, dialect='excel-tab').writerows(csv.reader(sys.stdin))
как этим пользоваться? в shell?
Лучше переесть, чем недоспать! © Обратное тоже верно :umnik1:
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: VBA, Perl or Python

Post by Flash-04 »

ну это PY файл вообще то.
но его можно вызвать как:
python файлик.py

в данном примере его можно вызывать по имени без python, но надо chmod +x сделать
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: VBA, Perl or Python

Post by Херовимчик »

User avatar
kyk
Уже с Приветом
Posts: 31438
Joined: 21 Nov 2004 05:12
Location: камбуз на кампусе

Re: VBA, Perl or Python

Post by kyk »

там денег хотят
Лучше переесть, чем недоспать! © Обратное тоже верно :umnik1:
User avatar
Komissar
Уже с Приветом
Posts: 65202
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: VBA, Perl or Python

Post by Komissar »

kyk wrote: 24 Sep 2019 07:35
там денег хотят
сколько тебе нужно для полного счастья?
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: VBA, Perl or Python

Post by Херовимчик »

kyk wrote: 24 Sep 2019 07:35
там денег хотят
12 баксов? (ваша задача там решается в первой же главе). Курс действительно отличный
User avatar
liamkin
Уже с Приветом
Posts: 2601
Joined: 19 Jun 2003 20:22
Location: USA

Re: VBA, Perl or Python

Post by liamkin »

kyk wrote: 23 Sep 2019 16:21
liamkin wrote: 23 Sep 2019 15:00сдается мне, что утилитка join любит tab-delimited файлы. CSV для них хуже яду. Сконвертируйте CSV в tab-delimited
а тот факт, что есть пробелы внутри второго и последующих fields, т.е. типа такого "Honours Bachelor of Science"
не помешает конвертации в tab-delimited?
Конвертации не помешает, но вот join точно этого не полюбит. Для пробелов в значениях, а также многострочных значений нужен полноценный парсер. Питон или Перл вам в помощь.
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: VBA, Perl or Python

Post by Flash-04 »

kyk, если ты серьезно занялся скрипто-писанием, то один раз потраться на питоновскую книжку и ни разу не пожалеешь. мощнее Питона сейчас нет ничего для этой цели 8) (сейчас любители JS на меня набросятся :food: )
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
kyk
Уже с Приветом
Posts: 31438
Joined: 21 Nov 2004 05:12
Location: камбуз на кампусе

Re: VBA, Perl or Python

Post by kyk »

liamkin wrote: 24 Sep 2019 16:10Для пробелов в значениях, а также многострочных значений нужен полноценный парсер.
а какова логика работы полноценного парсера? Какой формат данных он выдаст на выходе? Что он сделает с пробелами?
Лучше переесть, чем недоспать! © Обратное тоже верно :umnik1:
User avatar
kyk
Уже с Приветом
Posts: 31438
Joined: 21 Nov 2004 05:12
Location: камбуз на кампусе

Re: VBA, Perl or Python

Post by kyk »

Flash-04 wrote: 24 Sep 2019 17:09kyk, если ты серьезно занялся скрипто-писанием,
да как тебе сказать, мне за это денег-то больше не платят. Просто пытаюсь облегчить свою текущую административную работу и автоматизировать то, что делаю вручную. Но через год всё может измениться и эти мои самоделки могут оказаться не нужны
Лучше переесть, чем недоспать! © Обратное тоже верно :umnik1:
User avatar
liamkin
Уже с Приветом
Posts: 2601
Joined: 19 Jun 2003 20:22
Location: USA

Re: VBA, Perl or Python

Post by liamkin »

kyk wrote: 24 Sep 2019 17:29
liamkin wrote: 24 Sep 2019 16:10Для пробелов в значениях, а также многострочных значений нужен полноценный парсер.
а какова логика работы полноценного парсера? Какой формат данных он выдаст на выходе? Что он сделает с пробелами?
На Перле - это библиотека, которую вы импортируете. Затем классу и методу из библиотеки вы скармливаете имя файла CSV. Далее по циклу методами из класса читаете запись за записью.

#!/usr/bin/perl
use strict;
use warnings;

use Text::CSV_XS;

my $csv = Text::CSV_XS->new ({
binary => 1,
auto_diag => 1,
eol => $/,
sep_char => ',' # not really needed as this is the default
});

my $file = $ARGV[0] or die "Need to get CSV file on the command line\n";

open(my $data, '<:encoding(Windows-1251)', $file) or die "Could not open '$file' $!\n";
while ( my $row = $csv->getline( $data ) ) {
my @fields = @$row; #get CSV fields
}
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: VBA, Perl or Python

Post by Flash-04 »

kyk wrote: 24 Sep 2019 17:31
Flash-04 wrote: 24 Sep 2019 17:09kyk, если ты серьезно занялся скрипто-писанием,
да как тебе сказать, мне за это денег-то больше не платят. Просто пытаюсь облегчить свою текущую административную работу и автоматизировать то, что делаю вручную. Но через год всё может измениться и эти мои самоделки могут оказаться не нужны
тогда фигней не занимайся и скрипты не пиши :D
с другой стороны мне то за Питон тоже ничего не платят, но сильно в работе помогает, так что считаю что $$ потратил не зря.
Not everyone believes what I believe but my beliefs do not require them to.
Palych
Уже с Приветом
Posts: 13987
Joined: 16 Jan 2001 10:01

Re: VBA, Perl or Python

Post by Palych »

comm -13 list1.csv list2.csv
Песня
Уже с Приветом
Posts: 4053
Joined: 11 Apr 2002 09:01
Location: WA

Re: VBA, Perl or Python

Post by Песня »

А нельзя Ваши файлы перевести в Microsoft Access? Все переведется автоматически, таблицы соединятcя - и можно с ними работать, без Perl и сложностей... Нет?
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: VBA, Perl or Python

Post by NtNet »

Песня wrote: 28 Sep 2019 06:09 А нельзя Ваши файлы перевести в Microsoft Access? Все переведется автоматически, таблицы соединятcя - и можно с ними работать, без Perl и сложностей... Нет?
Тоже хотела подобное написать
В access загрузив excel файлы, с помощью мышки и joins можно все это за 2 мин решить

Я забыла начальное условие темы - какие есть файлы
Можно же их перевести с помощью программы конвертора в excel. А потом хоть в access хоть в ssms и там уже манипулировать

Или цель строго vba или phyton ?
NtNet
Уже с Приветом
Posts: 4307
Joined: 15 Jul 2015 03:22

Re: VBA, Perl or Python

Post by NtNet »

Прочитала, так они уже в excel!
Unless вам надо именно vba, perl or phyton - otherwise самое простейшее загрузить их в MsAccess, и в области design создать запрос в котором мышкой связать таблицы по общему полю и соответственно left (или какой подходит) join применить
И там где совпадающие написать Null, чтобы выдать not matching

Не могу нормально объяснить, сто раз это делала, но быстро, не задумываясь над процессом ((
Andrey Strelnikov
Уже с Приветом
Posts: 744
Joined: 17 Dec 2009 11:27

Re: VBA, Perl or Python

Post by Andrey Strelnikov »

liamkin wrote: 24 Sep 2019 18:20 На Перле - это библиотека, которую вы импортируете. Затем классу и методу из библиотеки вы скармливаете имя файла CSV. Далее по циклу методами из класса читаете запись за записью.
Не хочу плодить еще тему . Спрошу здесь - а Perl6 вообще набрал какую-то популярность?

Посмотрел шестую версию - по мне так приятнее отступного питона .

Выбираю вот в качестве скриптового языка - но вдруг еще и пригодится ...
User avatar
liamkin
Уже с Приветом
Posts: 2601
Joined: 19 Jun 2003 20:22
Location: USA

Re: VBA, Perl or Python

Post by liamkin »

Andrey Strelnikov wrote: 30 Sep 2019 15:12
liamkin wrote: 24 Sep 2019 18:20 На Перле - это библиотека, которую вы импортируете. Затем классу и методу из библиотеки вы скармливаете имя файла CSV. Далее по циклу методами из класса читаете запись за записью.
Не хочу плодить еще тему . Спрошу здесь - а Perl6 вообще набрал какую-то популярность?

Посмотрел шестую версию - по мне так приятнее отступного питона .

Выбираю вот в качестве скриптового языка - но вдруг еще и пригодится ...
Я полностью с вами согласен. Лично мне Перл нравится гораздо больше Питона. Но, фирмы пишущие всякие нейронные сети, самообучение и прочая новейшая веяния, выбрали гадкий Питон. Поэтому учите и пишите на Питоне. Эта ситуация с двумя популярными языками происходит не в первый раз. Паскаль гораздо лучше Си. С+Objects гораздо лучше и проще C++. Перл лучше Питона. Си лучше Явы. Ну и т д.
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: VBA, Perl or Python

Post by Flash-04 »

Перл - вечная память 8)
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
f_evgeny
Уже с Приветом
Posts: 10373
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Re: VBA, Perl or Python

Post by f_evgeny »

Andrey Strelnikov wrote: 30 Sep 2019 15:12приятнее отступного питона .
Отступы, это одна из лучших фишечек Питона. Нужно просто расслабиться.
И вообще, Питон это скриптовый язык сделанный с учетом ошибок Перла.
Если бы они еще не сделали 3-ю версию, был бы вообще идеал.
Дальше, все будет только хуже. Оптимист.
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: VBA, Perl or Python

Post by Flash-04 »

Да ну, развитие необходимо.
Not everyone believes what I believe but my beliefs do not require them to.
Andrey Strelnikov
Уже с Приветом
Posts: 744
Joined: 17 Dec 2009 11:27

Re: VBA, Perl or Python

Post by Andrey Strelnikov »

liamkin wrote: 30 Sep 2019 15:38
Andrey Strelnikov wrote: 30 Sep 2019 15:12
Не хочу плодить еще тему . Спрошу здесь - а Perl6 вообще набрал какую-то популярность?

Посмотрел шестую версию - по мне так приятнее отступного питона .
Я полностью с вами согласен. Лично мне Перл нравится гораздо больше Питона...
Я почему интересуюсь то - знакомый моего знакомого (C) является одним из основных разработчиков Racudo. И они оба серьезно вкладываются финансами и временем в IDE на основе IDEA.
Просто интересно есть ли рынок под этот инструмент. Похоже нету. И прибиваться к этой тусовке бесперспективно.

И так как 5 и 6 версии развиваются параллельно, то собираются 6-ку вообще переименовать. Будет похоже на пару Java-Kotlin. - но в Perl 6 старый код просто запустится.

Но поезд похоже все равно ушел.
User avatar
f_evgeny
Уже с Приветом
Posts: 10373
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Re: VBA, Perl or Python

Post by f_evgeny »

Flash-04 wrote: 30 Sep 2019 16:39 Да ну, развитие необходимо.
Я бы предпочел, чтобы добавление новых фич шло через библиотеки. Мне нравится, когда у языка простое и компактное ядро, а расширенная функциональность реализуется через внешние библиотеки. ИМХО, тогда меньше головняка с переносимостью. И мне кажется пардоксальной ситуация, когда язык испольуется в крупном проекте, который пишется несколько лет и вдруг нужно переносить с 2.7 на 3.6 только потому, что разработчикам интересно пихать новые фишки в язык.
А потом как результат языки превращаются в ужасных монстров как С++.
Дальше, все будет только хуже. Оптимист.
Palych
Уже с Приветом
Posts: 13987
Joined: 16 Jan 2001 10:01

Re: VBA, Perl or Python

Post by Palych »

NtNet wrote: 29 Sep 2019 02:36 Прочитала, так они уже в excel!
Unless вам надо именно vba, perl or phyton - otherwise самое простейшее загрузить их в MsAccess, и в области design создать запрос в котором мышкой связать таблицы по общему полю и соответственно left (или какой подходит) join применить
И там где совпадающие написать Null, чтобы выдать not matching

Не могу нормально объяснить, сто раз это делала, но быстро, не задумываясь над процессом ((
Мне тут видится фундаментальная дилемма: скрипты против гуев.
Скрипт писать сложно писать, зато можно запустить через 10 лет - и он будет работать так же (помнится в каком-то историческом фильме князь спрашивал монаха-писца: "А твои буквицы всегда то же самое будут говорить?...")
А гуи работает по принципу "выстрелил - и забыл".

Return to “Вопросы и новости IT”