VBA, Perl or Python
-
- Уже с Приветом
- Posts: 31589
- Joined: 21 Nov 2004 05:12
- Location: камбуз на кампусе
VBA, Perl or Python
I have 2 students (class) lists: A and B.
The lists overlap, i.e.there are students that are present in both A and B.
I need to create list C, which has all students from A that are not present in B
The lists are in Excel, for simplicity, in csv format.
What is easier to use VBA script, Perl or Python?
Which is easier to learn from the scratch and less prone to errors?
The lists overlap, i.e.there are students that are present in both A and B.
I need to create list C, which has all students from A that are not present in B
The lists are in Excel, for simplicity, in csv format.
What is easier to use VBA script, Perl or Python?
Which is easier to learn from the scratch and less prone to errors?
Last edited by kyk on 17 Sep 2019 05:47, edited 1 time in total.
Лучше переесть, чем недоспать! © Обратное тоже верно
-
- Уже с Приветом
- Posts: 10632
- Joined: 17 Jul 2003 22:11
Re: VBA, Perl or Python
shell: join -v1 1.txt 2.txt
Ну сколько у вас тех студентов! Хотя сортировать надо.
ну или так: join -v1 --nocheck-order 1.txt 2.txt
Ну сколько у вас тех студентов! Хотя сортировать надо.
ну или так: join -v1 --nocheck-order 1.txt 2.txt
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
-
- Уже с Приветом
- Posts: 31589
- Joined: 21 Nov 2004 05:12
- Location: камбуз на кампусе
Re: VBA, Perl or Python
Пару сотен в каждом списке. И таких списков десяток-другой раз-два в семестр.
Windows shell? А в чём идея?
для каждого студента file содержит несколько data fields:
student ID; First name;Last name; другие данные.
Identification by student ID
Лучше переесть, чем недоспать! © Обратное тоже верно
-
- Уже с Приветом
- Posts: 2603
- Joined: 19 Jun 2003 20:22
- Location: USA
Re: VBA, Perl or Python
Я тоже за Шелл.
В свое время на Перле некую обработку CSV или TAB делимитэд писал. Там библиотечки готовые. Тоже самое должно в Питоне быть. На VBA я бы забил.
-
- Уже с Приветом
- Posts: 31589
- Joined: 21 Nov 2004 05:12
- Location: камбуз на кампусе
Re: VBA, Perl or Python
"Kазнить нельзя помиловать"
Шелл - eto Windows shell?
Если пользовать Windows shell, нужен ли в таком случае Perl/Python?
Лучше переесть, чем недоспать! © Обратное тоже верно
-
- Уже с Приветом
- Posts: 31589
- Joined: 21 Nov 2004 05:12
- Location: камбуз на кампусе
Re: VBA, Perl or Python
Даёшь сотню просмотров, господа программёры
Лучше переесть, чем недоспать! © Обратное тоже верно
-
- Уже с Приветом
- Posts: 8239
- Joined: 06 Feb 2002 10:01
- Location: NJ, USA
Re: VBA, Perl or Python
На питоне пишется в десять строк максимум.kyk wrote: ↑17 Sep 2019 04:48 I have 2 students (class) lists: A and B.
The lists overlap, i.e.there are students that are present in both A and B.
I need to create list C, which has all students from A that are not present in B
The lists are in Excel, for simplicity, in csv format.
What is easier to use VBA script, Perl or Python?
Which is easier to learn from the scratch and less prone to errors?
Открыть один файл, считать всё в список.
Открыть второй файл, считать всё в список.
2x Сконвертировать спискок в набор. set(list)
вычесть набор 2 из набора 1. set1 - set2
Записать полученый список в файл.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: VBA, Perl or Python
Kyk, вот вместо того чтобы морочить людям голову кучей топиков, уже бы взял курс по питону и освоил.
Я на ём распознавание изображений делаю, а ты тут со списком студентов. Несерьёзно
Питон прекрасно живёт под Windows.
Я на ём распознавание изображений делаю, а ты тут со списком студентов. Несерьёзно
Питон прекрасно живёт под Windows.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 2603
- Joined: 19 Jun 2003 20:22
- Location: USA
Re: VBA, Perl or Python
Unix shell. Если надо из под Виндоуз - выкачай busybox.exe - это Юникс шелл для виндов, в нем сразу включены многие утилитки, включая join. Еще есть UnxUtils на sourceForge. Незаменимая вещь, но сам шел там в ЮнксУтилс не рабочий. Для шелла - бизибокс.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: VBA, Perl or Python
я вас умоляю - Windows 10 поддерживает WSL:
https://docs.microsoft.com/en-us/windows/wsl/faq
а если и этого мало, то и Hyper-V
https://docs.microsoft.com/en-us/windows/wsl/faq
а если и этого мало, то и Hyper-V
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Re: VBA, Perl or Python
На сегодня нужно знать и использовать Unix shell и Python. Это самые лучшие инструменты.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 5199
- Joined: 08 Jul 2002 09:36
- Location: В глухой провинции, у моря...
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: VBA, Perl or Python
да, в Windows лучше PowerShell, для Linux - shell & python, хотя как я уже сказал в Windows тоже живет.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Re: VBA, Perl or Python
А смысл? Кто-то еще работает в Виндовс?
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: VBA, Perl or Python
Гы.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 2603
- Joined: 19 Jun 2003 20:22
- Location: USA
Re: VBA, Perl or Python
Если не вы не кондовый виндошный сисадмин, то учить ПомерШел смысла нет. Если сам МС добавляет Линуксовый тулсет в винды, то это верный знак. Облачный бизнес диктует свои законы!
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Re: VBA, Perl or Python
И не только, один из самых их успешных бизнесов - Azure тоже Линукс в основном. ИМХО.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 12017
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: VBA, Perl or Python
В каком смысле? Они не на Hyper-V?f_evgeny wrote: ↑20 Sep 2019 19:23И не только, один из самых их успешных бизнесов - Azure тоже Линукс в основном. ИМХО.
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: VBA, Perl or Python
С подкручеными гайками:
https://azure.microsoft.com/en-us/resou ... lity-apps/
https://azure.microsoft.com/en-us/resou ... lity-apps/
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 31589
- Joined: 21 Nov 2004 05:12
- Location: камбуз на кампусе
Re: VBA, Perl or Python
Попробовал на Linux
Code: Select all
join -v1 --nocheck-order A.csv B.csv > C.csv
Формат: (на каждой строке)
ID,Student_name,program,...
Распознавание должно идти по ID
Syntax for join:
А у меня comma-separated и при этом есть пробелы внутри второго и последующих fieldsFor each pair of input lines with identical join fields, write a line to standard output. The default join field is the first, delimited by whitespace.
Code: Select all
180682340,Doe,John,Honours Bachelor of Science,Biochemistry and Biotechnology,,1,raso2340@best.edu
180518070,Pupkin,Vasya,Honours Bachelor of Science,Biology,,1,amug8070@best.edu
Кстати, сделал Linux на Win-10 машине за 15 мин:
(1) https://docs.microsoft.com/en-us/window ... tall-win10 => Ubuntu 18.04 LTS
(2) https://docs.microsoft.com/en-us/window ... ize-distro
Биллу Гейтсу - зачОт
Лучше переесть, чем недоспать! © Обратное тоже верно
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: VBA, Perl or Python
а вот как оно было бы на змеюке:
ессно элементами массива может быть что угодна, а для CSV у Питона есть парсер.
Code: Select all
>>> list_1=["a", "b", "c", "d", "e"]
>>> list_2=["a", "f", "c", "m"]
>>> set(list_2) - set(list_1)
set(['m', 'f'])
>>> list(set(list_2) - set(list_1))
['m', 'f']
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 31589
- Joined: 21 Nov 2004 05:12
- Location: камбуз на кампусе
Re: VBA, Perl or Python
уважаемые линуксоиды, помогите вставить пробел после 1ой запятой в Linux shell
Лучше переесть, чем недоспать! © Обратное тоже верно
-
- Уже с Приветом
- Posts: 2603
- Joined: 19 Jun 2003 20:22
- Location: USA
-
- Уже с Приветом
- Posts: 2603
- Joined: 19 Jun 2003 20:22
- Location: USA
Re: VBA, Perl or Python
сдается мне, что утилитка join любит tab-delimited файлы. CSV для них хуже яду. Сконвертируйте CSV в tab-delimited (Excel или любой фриварный обработчик таблиц).kyk wrote: ↑21 Sep 2019 05:25Попробовал на Linuxне даёт нужного результата. Студенты и их кол-во в С.csv такие же, как и в A.CSV, хотя должно быть меньше, так как B.csv overlaps A.csv.Code: Select all
join -v1 --nocheck-order A.csv B.csv > C.csv
Формат: (на каждой строке)
ID,Student_name,program,...
Распознавание должно идти по ID
Syntax for join:А у меня comma-separated и при этом есть пробелы внутри второго и последующих fieldsFor each pair of input lines with identical join fields, write a line to standard output. The default join field is the first, delimited by whitespace.Будет ли работать если вставить пробел после первой запятой? Как это сделать?Code: Select all
180682340,Doe,John,Honours Bachelor of Science,Biochemistry and Biotechnology,,1,raso2340@best.edu 180518070,Pupkin,Vasya,Honours Bachelor of Science,Biology,,1,amug8070@best.edu
Кстати, сделал Linux на Win-10 машине за 15 мин:
(1) https://docs.microsoft.com/en-us/window ... tall-win10 => Ubuntu 18.04 LTS
(2) https://docs.microsoft.com/en-us/window ... ize-distro
Биллу Гейтсу - зачОт
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: VBA, Perl or Python
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))
Not everyone believes what I believe but my beliefs do not require them to.