Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 19

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

14.01.2021, 18:35. Показов 4447. Ответов 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 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru