LINUX.ORG.RU

2
Всего сообщений: 36

Экспорт данных из запроса MYSQL в файл. Лишние символы

Всем привет! Решаю задачу по автоматической выгрузке данных из запроса в csv файл. Запрос сделал, все ок... Кроме лишних символов. Сам запрос:

SELECT IFNULL(`realname_ru`, account.name ), user.name, account.name,`email`,REPLACE(REPLACE(phone, "(", ""), ")", ""),`note` FROM `user`,`account` WHERE user.account=account.id AND
`phone`!=0 INTO OUTFILE '/home/COV/csv/book.csv' character set cp1251 FIELDS TERMINATED BY ';' LINES STARTING BY '' TERMINATED BY '\r\n';
Нормальная выгрузка из phpmyadmin (в кодировке 1251, NULL заменяем на «Отсутвует») http://joxi.ru/Dr8550zi4Db4Em Выгрузка курильщика(т.е. что получается по моему запросу): http://joxi.ru/823PP1GiJwB9QA В итоге есть следующие проблемы:

  • Пропущенные строки после каждой строки
  • Если в последнем столбце строки есть слова с переносом - они формируются в первом столбце строки ниже
  • Там где нет данных ставится \N
  • В последнем столбце строки появляется \

Прошу подсказать :) Спасибо!

 ,

zukc ()

Zapret-Info/dump.csv - появились непонятные строки

Из свежего дампа:

...
95.85.44.163;;;суд;2-946/13;2013-06-10
97.77.104.22;;;суд;2-946/13;2013-06-10
HASH(0x8282d1b28);52.237.222.222;http:// 52.237.222.222;Генпрокуратура;27-31-2018/;2018-04-16
HASH(0x8282d1438);52.237.238.204;http:// 52.237.238.204;Генпрокуратура;27-31-2018/;2018-04-16
154.16.230.33;*.00834c.olimp1a50.top;;ФНС;2-6-27/115;2015-11-23
154.16.230.26;*.00eed0.olimpe24a.top;;ФНС;2-6-27/115;2015-11-23
...
Что такое HASH(...)?

По идее формат везде такой: «список IP;список доменов;список URL;запретившая организация;ID документа;дата документа».

 , ,

mironov_ivan ()

Хелп! Забыл, как заставить csv.writer не с...ть в память, а сразу писать на диск

Здравствуйте.
Чё-то опять понадобилось поскрапить и записать в csv, но вот не помню, вроде раньше был метод заставить не жрать гиги памяти, а сразу писать на диск, без танцев гопака вприсядку...
Или я с xlsxwriter'ом путаю?

 ,

Shadow ()

Чем просматривать и фильтровать CSV?

В принципе LibreOffice Calc показывает нормально, но фильтр неудобный, нужно всё мышкой нажимать, когда мне нужно искать по условию substr1% AND substr2%, а затем опять нажимать мышкой, когда нужно искать просто substr1%

Еще попробовал в терминале

column -t -s";" source.csv | grep -i -e 'substr1' -e 'substr2'

Но оно работает по паттерну substr1% OR substr2%, можно как-то сделать AND не наворачивая кучу ключей? Сейчас дошло, что можно так:

column -t -s";" source.csv | grep -i -e 'substr1%' | grep -i -e 'substr2%'

Но в идеале подошла бы легкая GUI софтина.

 , ,

foror ()

awk - Удаление «дубликатов» строк в csv файле, при совпадении нескольких полей.

Не могу сообразить, как бы это реализовать на awk...

Есть csv файл с содержимым:

1;500;01.01.1980;Иванов;Иван;Иванович
2;350;02.02.1985;Петров;Петр;Петрович
3;400;01.01.1980;Иванов;Иван;Иванович
4;200;05.07.1990;Сидоров;Сидор;Сидорович
5;150;05.07.1990;Сидоров;Сидор;Сидорович

Необходимо удалить дубли «строк» по колонкам ДР и ФИО, т.е. оставить только первое уникальное вхождение строки с этими колонками, а остальные удалять без оглядки на первые две колонки, на выходе должно получиться:

1;500;01.01.1980;Иванов;Иван;Иванович
2;350;02.02.1985;Петров;Петр;Петрович
4;200;05.07.1990;Сидоров;Сидор;Сидорович

 ,

karasic ()

Утилита подстветки изменений значений от строки к строке

День добрый.

Есть текстовый лог в формате CSV.

В столбцах — счетчики (в том числе времени), показания от датчиков, идентификаторы состояний в виде одной буквы.
(Очевидно, очень похоже на NMEA).

Все значения обычно (но не всегда) либо монотонно растут (счетчики), либо незначительно колеблются вокруг какой-то константы (датчики).

Есть ли такая готовая утилита, которая бы подсветила разницу между строками,
да так, что если значение изменилось незначительно, то подсветила бы бледно/зеленым/etc,
а если значение изменилось значительно, то ярко/красным/etc.

В идеале, если катать губу, утилита вообще должна понимать поведение полей по статистике, например,
«ага, обычно этот счетчик растет раз в 5 строк, а здесь не растет уже 6 строк, надо подсветить красным сей факт».

 , , ,

Tayler ()

Выбор бд\формата хранения информации

Есть у меня тузла, с помощью которой я храню всякие заметки. С тегированием информации. На pickle + gzip. 703 записи занимает:

du -sh data.txt.gz
out:
52K     data.txt.gz

Думаю переписать тузлу с нуля(учитывая ошибки, которые допустил). Вот сижу и думаю, какой использовать формат данных. С одной стороны sqlite - было бы неплохо. Выборки там и тд. С другой стороны тот же csv очень удобно открывается тем же опенофисом. Можно легко подрихтовать то, что нужно. Основной кретерий: удобное хранение информации и выгрузка в битбакет. Что посоветуете ?

 , ,

bryak ()

Правильный формат для адресной книги в 2017

Всем доброго времени суток.

Какой формат является наиболее актуальным на данный момент для экспорта и резервного копирования адресной книги?

NextCloud дает скачать в VCF, Google предлагает VCF или два разных варианта CVS.

VCF, насколько я понимаю, должен поддерживать фото, но у меня почему-то без фото экспортируются.

И еще, чтобы лишнюю тему не создавать, подскажите, Android устройства синхронизируют контакты и календарь с Google через *dav или там свой протокол?

 , , , ,

aquadon ()

Ищу новость про совместную научную работу/книгу, которую писали в какой-то vcs (git, svn etc.)

Сабж, не могу найти.

Там говорилось о том, что совместная работа в vcs помогла очень быстро завершить работу.

 , , , ,

ErasimHolmogorin ()

LibreOffice Calc коверкает документ при конвертации xlsx => csv

Всем добра!)

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

Не в курсе ли кто, отчего такое может происходить? Возможно имеются какие-то ограничения, например, по количеству символов в ячейках csv? Или в них может не должны использоваться спец. символы? Больше возможных причин в упор не вижу, но гугл ничего не дал(

Заранее спасибо.

 , , , ,

nadim ()

Сравнение столбцов таблицы

Добрый день. В man по diff не обнаружил следующей возможности: Пример Есть таблица 1.csv

1 5 5 5

2 6 7 5

3 7 9 9

4 8 12 12

Как можно сравнить 3 и 4 column средствами командной строки или bash скриптом? Пробовал diff совместно с | awk, но не выходит( В инете и на форумах (в том числе и на этом) есть примеры сравнения двух текстовых файлов, но не двух столбцов одной таблицы. Вывод сравнения необходимо true/false. Буду благодарен за совет или пример.

 , ,

Binster ()

Не могу загрузить данные в csv-файл

import requests
from bs4 import BeautifulSoup
import csv

url = "http://www.ilife.if.ua/show_cat.php?catid=21675&grid=1154"
r = requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')

phone_name = soup.find_all("a", attrs={"class": "tov"})

list_of = []
for item in phone_name:
    name = item.text
    print name
    list_of.append(name)
    
with open('index.csv', 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(name)  
   
print list_of

Перемещено leave из web-development

 ,

kindix ()

Ищу скрипт CSV->ASCII

Приветик!

Хотел бы разобраться со следующим вопросом.

У меня, скажем, есть исходный CSV-файл (2 столбца, прибл. 10 строк, ";"-сепарированный). Я хотел бы преобразовать его в простую аски таблицу с разделителями. Условие такое, что нужно иметь возможность задавать ширину этих двух столбцов в целевой таблице (строки длиннее, чем хотелось бы). Может есть какой-то скрипт в свободном пробеге?

 , ,

forest22 ()

обработка csv файлов bash

есть файл с таким текстом :

>-oper-29
>*Linux
>/Intel(R) Celeron(R) CPU G1620 @ 2.70GHz
>+ 2.70GHz
>$1,6G 1,2G 385M 136M 67M 390M
>!sda 8:0 0 298,1G 0 disk

и есть csv файл :

Хостнейм ОС Проц Частота Проца Оператива Жесткий  

Нужно вытащить из первого файла данные и поместить в нужный столбец , вытащить не проблема , хоть grep хоть awk а вот записать это для меня вообще дичь , искал в гугле , с помощью awk нет инфы о запись вообще (походу он таким не занимается) что по советуете ? какие есть консольные утилиты для такого ? пытался использовать eсho но оно чудеса выдает ...зарание спасибо!!!=)

 , , ,

echo_ ()

brithday reminder

Кто чем пользуется? Посоветуйте годное. Последнее время сижу под офтопиком, в силу специфики работы. В кармане Андроид. Хотелось бы универсальное решение. С хранением данных в *.txt или *.csv, что бы можно было править блокнотом или в случае чего легко парсить - переконвертировать. Заранее благодарю! Прошу сильно не пинать, я уже года два выпал из темы ////

 , ,

baaba ()

Кодировки в Python 2.

Всем привет! Уверен что платина, но поиском ничего не нашел. Есть такой несложный код, который открывает .csv и создает список из указанных колонок.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

f = open('/var/tmp/test.csv','r')
try:
    reader = csv.reader(f)
    next(reader)
    for i in reader:
        name.append(i[0])
        login.append(i[1])
        password.append(''.join(random.sample(alphabet, 8)))
finally:
    f.close()
list = zip(name,login,password)
print list
Однако, когда пытаешься новый список распечатать, получаю : \xd0\x9a\xd0\xbe\xd1\x82\xd0\xbe\xd0\xb2\xd0\xb0 и т.д. Но если печатать:
for i in name:
    print i
то все нормально. В чем тут может быть дело?

 , ,

gadzira ()

Нужно отображение графиков из CSV со скроллингом и масштабированием.

Есть 16000 строк CSV, грубо говоря одна непрерывная переменная, в нём вкрапления по 300-800 строк которые надо увеличивать, на этих участках появляются ещё две переменных. Посоветуйте чего-нибудь.

 

TepakoT ()

неправильный csv как обработать.

Есть один очень большой лог сделанный очень низкокачественным продуктом с нарушенными разделителями (ну пацаны принципиально о стандартах не читали, как и их адепты). Разделители - пробелы. Но проблема в том, что на каждой строчке разное количество, а мне требуется именно последний псевдостолбец, после него ничего нет.

Требуется что-то типа такой команды:

awk -F" " '!_[$1]++' microsoftdnslog.csv

Как его вытащить?

 , ,

steemandlinux ()

Поиск ближайшего значения

Есть огромная таблица с десятками миллионов строк.

unixtime,1stcol,2ndcol
1364785776,2354,3456
1364795256,1235,1235
1374785234,6565,4545

Первая колонка это набор значений unixtime. Есть условие:

time = 1357052400 time = time + 86400 либо

time = 15:00:00

Проблема в том, что в колонке unixtime нет значений делящихся без остатка на time. как за относительно короткое время на 64 битной системе (SSE, AVX, 4 ядра) найти в первой колонке значения делящиеся с минимальным остатком?

Проблема решена:

which.min(abs(as.numeric(mydata$UNIXTIME)-(1357052400+step)))

 ,

steemandlinux ()

Объединить два csv

Добрый день. Есть два csv-файла. Первый id,phone,login,mobile, второй id,login,realname. Из второго нужно взять таблицу realname и поместить в первый файл. Какой программой можно такое сделать?

 

dnb ()