0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19

Создание таблицы из базы данных

14.01.2021, 18:35. Показов 4455. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужно используя txt файл с данными по типу
as:1
dn:2
sq:3
u2:4
dn:7 u2:12
as:5 sq:11

и тд.
создать таблицу, где все значения будут отсортированы по столбикам. примерно как
as dn sq u2
1 2 3 4
5 7 11 12

Нужно для работы, а в программировании я 0.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2021, 18:35
Ответы с готовыми решениями:

Создание базы данных. Создание таблицы. Отправка данных. Вывод данных из таблицы
Найдите ошибку SelectDB.php <html> <head> <title> Create DB</title> </head>

Создание базы данных, создание таблицы. Куда сохраняется база при создании? Вылетает исключение. Код внутри. И ещё несколько вопросов...
using System; using System.Collections.Generic; namespace Wpf_TestSQL { public partial class MainWindow : Window { ...

Создание базы данных, открытие из под одной базы данных MS Access
Здравствуйте. В общем, C# начал заниматься только вот и сразу была поставлена задача создать базу данных. Идея есть, при открытие программы...

22
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
14.01.2021, 23:53
ну типа так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#with open('in.txt') as f:
    # s = f.read()
s = '''as:1
dn:2
sq:3
u2:4
dn:7 u2:12
as:5 sq:11'''
 
d = {}
l = s.split()
tmp = [i.split(':') for i in l]
for k,v in tmp:
    if not k in d:
        d[k] = []
    d[k].append(v)
    
out = '\t'.join(d.keys()) +'\n'
max_len = 0
for item in d.values():
    if max_len < len(item):
        max_len = len(item)
        
for j in range(max_len):
    tmp = []
    for item in d.values():
        try:
            tmp.append(item[j])
        except:
            tmp.append('  ')
    out += '\t'.join(tmp) + '\n'
print(out)
#with open('out.txt'.'w') as f:
    #f.write(out)
2
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
15.01.2021, 07:57
vic5710, многовато.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
data = """
as:1
dn:2
sq:3
u2:4
dn:7 u2:12
as:5 sq:11
"""
 
table = {}
for line in data.splitlines():
    if not line: continue
    for element in line.split():
        key, value = element.split(":")
        if key not in table:
            table[key] = []
        table[key].append(int(value))
 
for key in table:
    table[key].sort()
 
print(*map("{:<4s}".format, table.keys()))
for row in zip(*table.values()):
    print(*map("{:<4d}".format, row))
1
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
15.01.2021, 08:11
Цитата Сообщение от DmFat Посмотреть сообщение
многовато
вожможно, я не заморачивался. можно просто в sqlite перегнать
Цитата Сообщение от DmFat Посмотреть сообщение
for key in table:
    table[key].sort()
вот это спорно
порядок записи нарушается
1
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
15.01.2021, 08:12
Цитата Сообщение от vic5710 Посмотреть сообщение
вот это спорно
порядок записи нарушается
Ну если я правильно понял, то ему надо отсортировать значения.

Цитата Сообщение от Lyu812 Посмотреть сообщение
где все значения будут отсортированы по столбикам
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
15.01.2021, 08:45
DmFat,
и если данные будут такие
Python
1
2
3
4
5
6
7
8
s = """
as:1
dn:2
sq:3
u2:4
dn:7 u2:12
as:5 
"""
то у меня вывод
Bash
1
2
3
as  dn  sq  u2
1   2   3   4
5   7       12
а у вас
Bash
1
2
as   dn   sq   u2  
1    2    3    4
потеря данных
1
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
15.01.2021, 09:30
vic5710, все, понял про что ты, да, ты прав, я не подумал об этом.

Добавлено через 2 минуты
Согласно твоему замечанию, поправил:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
table = {}
for line in data.splitlines():
    if not line: continue
    for element in line.split():
        key, value = element.split(":")
        if key not in table:
            table[key] = []
        table[key].append(int(value))
 
length = max(map(len, table.values()))
 
for key in table:
    table[key].sort()
    while len(table[key]) < length:
        table[key].append("")
 
print(*map("{:<4}".format, table.keys()))
for row in zip(*table.values()):
    print(*map("{:<4}".format, row))
1
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19
15.01.2021, 09:55  [ТС]
а если data нужно брать из txt файла? как я понял нужно ввести
f = open('in.txt','r')
f.read()
для открытия и чтения файла, а как работать с данными из этого файла?
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
15.01.2021, 11:16
Цитата Сообщение от Lyu812 Посмотреть сообщение
а если data нужно брать из txt файла?
можно так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
try: 
    infile, outfile = sys.argv[1], sys.argv[2]
except IndexError:
    print('Usage: ' + sys.argv[0] + ' infile outfile')
    sys.exit(1)
    
with open(infile) as f: 
    s = f.read().strip()
d = {}
l = s.split()
tmp = [i.split(':') for i in l]
for k,v in tmp:
    if not k in d:
        d[k] = [k]
    d[k].append(v)
    
out = ''
max_len = 0
for item in d.values():
        max_len = max(max_len,len(item))
        
for j in range(max_len):
    tmp = []
    for item in d.values():
        try:
            tmp.append(item[j])
        except IndexError:
            tmp.append(' ')
    out += '\t'.join(tmp) + '\n'
print(out)
with open(outfile, 'w') as f: 
    f.write(out.strip())
из infile читается в outfile пишется

Добавлено через 26 минут
если сделать так - на выходе будет csv файл, можно в екселе открыть
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
try: 
    infile, outfile = sys.argv[1], sys.argv[2]
except IndexError:
    print('Usage: ' + sys.argv[0] + ' infile outfile')
    sys.exit(1)
    
with open(infile) as f: 
    s = f.read().strip()
d = {}
l = s.split()
tmp = [i.split(':') for i in l]
for k,v in tmp:
    if not k in d:
        d[k] = [k]
    d[k].append(v)
    
out = ''
max_len = 0
for item in d.values():
        max_len = max(max_len,len(item))
        
for j in range(max_len):
    tmp = []
    for item in d.values():
        try:
            tmp.append(item[j])
        except IndexError:
            tmp.append('')
    out += ','.join(tmp) + '\n'
print(out)
with open(outfile, 'w') as f: 
    f.write(out.strip())
0
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19
15.01.2021, 13:28  [ТС]
Пишет
================= RESTART: D:\Новая папка\v2.py =================
Usage: D:\Новая папка\v2.py infile outfile
и ничего не происходит
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
15.01.2021, 13:52
так вы параметры указывайте
v2.py data.txt data.csv к примеру

Добавлено через 1 минуту
data.txt откуда читать, data.csv - куда писать
0
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19
15.01.2021, 13:58  [ТС]
простите за глупый вопрос, так ?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import sys
try: 
    infile, outfile = sys.argv[1], sys.argv[2]
except IndexError:
    print('Usage: ' + sys.argv[0] + ' data.txt data.csv')
    sys.exit(1)
    
with open(data.txt) as f: 
    s = f.read().strip()
d = { }
l = s.split()
tmp = [i.split(':') for i in l]
for k,v in tmp:
    if not k in d:
        d[k] = [k]
    d[k].append(v)
    
 
print(out)
with open(data.csv, 'w') as f: 
    f.write(out.strip())
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
15.01.2021, 14:30
параметры передаются в командной строке
Bash
1
v2.py data.txt data.csv
https://python-scripts.com/module-sys

Добавлено через 3 минуты
пример с моего компа
Bash
1
admin$ python3 v2.py data.txt data.csv
0
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19
15.01.2021, 14:53  [ТС]
мне правда уже стыдно, но я все еще не понял. я беру этот код
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import sys
try: 
    data.txt, odata.csv = sys.argv[1], sys.argv[2]
except IndexError:
    print('Usage: ' + sys.argv[0] + ' data.txt data.csv')
    sys.exit(1)
    
with open(data.txt) as f: 
    s = f.read().strip()
d = {}
l = s.split()
tmp = [i.split(':') for i in l]
for k,v in tmp:
    if not k in d:
        d[k] = [k]
    d[k].append(v)
    
out = ''
max_len = 0
for item in d.values():
        max_len = max(max_len,len(item))
        
for j in range(max_len):
    tmp = []
    for item in d.values():
        try:
            tmp.append(item[j])
        except IndexError:
            tmp.append('')
    out += ','.join(tmp) + '\n'
print(out)
with open(data.csv, 'w') as f: 
    f.write(out.strip())
input()
сохраняю, пытаюсь открыть файл v2.py, он моргает и гаснет.
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
15.01.2021, 14:57

Не по теме:

ну вы блин даете


а в консоли какие ошибки пишет?
0
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19
15.01.2021, 15:05  [ТС]
простите((
1. создаю текстовый и переименовываю в v2.py
2. нажимаю право кнопкой и выбираю Edit with IDLE 3.9
3. вставляю код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sys
try: 
    data.txt, odata.csv = sys.argv[1], sys.argv[2]
except IndexError:
    print('Usage: ' + sys.argv[0] + ' data.txt data.csv')
    sys.exit(1)
    
with open(data.txt) as f: 
    s = f.read().strip()
d = {}
l = s.split()
tmp = [i.split(':') for i in l]
for k,v in tmp:
    if not k in d:
        d[k] = [k]
    d[k].append(v)
    
out = ''
max_len = 0
for item in d.values():
        max_len = max(max_len,len(item))
        
for j in range(max_len):
    tmp = []
    for item in d.values():
        try:
            tmp.append(item[j])
        except IndexError:
            tmp.append('')
    out += ','.join(tmp) + '\n'
print(out)
with open(data.csv, 'w') as f: 
    f.write(out.strip())
4.сохраняю
5.просто пытаюсь открыть файл v2.py
6. моргает консоль и все закрывается
7. рыдаю
8. бегу к Вам
(в папке с файлом v2.py лежит еще data.txt и все )
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
15.01.2021, 15:10
лайтовый вариант(бех параметров)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
infile = input('Введите имя файла для чтения:')
try: 
    with open(infile) as f:
        s = f.read().strip()
except Exception as e:
    print('Ошибка чтения файла', str(e))
    exit(1)
 
d = {}
for item in s.split():
    k,v = item.strip().split(':')
    if not k in d:
        d[k] = [k]
    d[k].append(v)
    
out = ''
max_len = 0
for item in d.values():
        max_len = max(max_len,len(item))
        
for j in range(max_len):
    tmp = []
    for item in d.values():
        try:
            tmp.append(item[j])
        except IndexError:
            tmp.append('')
    out += ','.join(tmp) + '\n'
print(out)
outfile = input('Введите имя файла для записи:')
try:
    with open(outfile, 'w') as f: 
        f.write(out.strip())
except Exception as e:
    print('Ошибка записи файла', str(e))
    exit(1)
Добавлено через 2 минуты
в идле давно не работал, но там вроде F5 надо нажимать для запуска
0
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19
15.01.2021, 15:47  [ТС]
простите, я правда стараюсь

ссылка на фото не закрепляется

Добавлено через 3 минуты
я не знаю что написать в поле Ошибка записи файла и чтения
но когда запускаю теперь открывается консоль, в которой написано data.txt

Добавлено через 19 минут
я так понимаю outfile = input('Введите имя файла для записи:') и print('Ошибка чтения файла', str(e)
выводят текст при ошибке, но у меня просто открывается консоль с надписью data.txt, при нажатии на enter консоль закрывается

Добавлено через 8 минут
вот для примера малая часть из data.txt
Concentration
0.3um: 11254
0.5um: 3467
1.0um: 683
2.5um: 109
5.0um: 22
10 um: 10
AT: 24.9 RH: 32.4
DP: 9.1 WB: 16.7
Concentration
0.3um: 10987
0.5um: 3545
1.0um: 684
2.5um: 119
5.0um: 33
10 um: 14
AT: 25.2 RH: 28.1
DP: 7.7 WB: 16.5
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
15.01.2021, 15:56
Цитата Сообщение от Lyu812 Посмотреть сообщение
Concentration
0.3um: 11254
0.5um: 3467
1.0um: 683
2.5um: 109
5.0um: 22
10 um: 10
так у вас формат не соответствует тому, что вы выше описали
естественно ошибки будут
0
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19
15.01.2021, 15:57  [ТС]
я тогда дома был, точно н мог вспомнить, думал не так критично
сейчас заменил в дате все на
as:1
dn:2
sq:3
u2:4
dn:7 u2:12
as:5 sq:11
точно так же осталось
перешел на вижуал, там пишет вызвано исключение 1, ошибка при чтении, на оба файла дата так реагирует
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2021, 15:57
Помогаю со студенческими работами здесь

Создать таблицы базы данных. Соединить их соответствующими связями. Заполнить таблицы записями (по 10 шт.)
Помогите пожалуйста, может образец какой-то есть у кого, на самообучение дали Access. И задачки... а я понять не могу. Вот задачка. ...

Создание таблицы и подключение базы
Всем привет. У меня такая проблема я хочу на сайте недвижимости поставить раздел в котором будут размещаться объявления которые подали...

Создание базы данных, создание таблиц в MS SQL Server из программы на C++ Builder 6.0
Здравствуйте. Не могу найти источника знаний по созданию базы данных в удалённом MS SQL Servere. В базе данных необходимо создать таблицы и...

Создание базы данных на лету, создание и заполнение таблиц в базе DB (Paradox? или..).
Здравствуйте Профи! --- Видел я &quot;простенькую&quot; (exe-шник небольшого размера, запускается сразу, без предварительной установки)...

Вставка данных в Вордовский документ из базы данных или таблицы Аксесс
доброго времени суток. Помогите решить задачу: хочу сделать базу данных и вставлять в текст вордовского документа данные из нее!...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru