Запишите результаты Python в файл Excel, разные столбцы

Я знаю, что подобные вопросы задавались и раньше, однако я не могу отредактировать свой код так, чтобы он соответствовал:

У меня есть скрипт Python, который записывает все комбинации из 15 чисел в текстовый файл:

import itertools
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
combinations = list(itertools.combinations(numbers, 15))
#print(combinations)

#Write combinations to a file
with open('combinations.txt', 'w') as f:
    for comb in combinations:
        f.write(str (comb) + '\n')

По неизвестной причине результаты заключаются в круглые скобки:

Мне нужно записать в файл xlsb каждое число в столбце без скобок и запятых, ожидаемый результат ниже:

...с централизованным текстом и фиксированной шириной столбца Есть идеи простого и небольшого кода? У меня уже есть pandas и openpyxl (если это поможет)

Вам нужен файл Excel или текстовый файл (например, CSV)?

mozway 08.08.2024 14:23

это должен быть Excel (формат xlsb). Пожалуйста

ROCA 08.08.2024 14:24

вы не можете создавать файлы xlsb непосредственно в Python, однако вы можете создать файл xlsx. Кроме того, не используйте pandas, это будет неэффективно, перейдите непосредственно к openpyxl (см. мой ответ ниже).

mozway 08.08.2024 14:36

Если были заданы похожие вопросы, зачем тогда задавать и не искать похожие вопросы?

Bending Rodriguez 08.08.2024 14:43

кто-нибудь пробовал github.com/rahulgurujala/excel-helper?

Rahul Gurujala 08.08.2024 18:32
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
5
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вот что я нашел в старом проекте с похожими параметрами, просто нужно импортировать правильные модули и, возможно, отредактировать параметры и т. д.

import pandas as pd

# Convert combinations to a DataFrame
df = pd.DataFrame(combinations)

# Save DataFrame to an Excel file with a specified column width and centralized text
output_file = 'combinations.xlsx'
with pd.ExcelWriter(output_file, engine='openpyxl') as writer:
    df.to_excel(writer, index=False, header=False)

Это должно создать новый файл Excel, в котором каждое число занимает одну строку и столбец. Если это не сработает, я удалю ответ.

полезно, не сохранял в xlsb и не централизовал и не настраивал столбцы, но работало.

ROCA 08.08.2024 14:35
Ответ принят как подходящий

Вы не можете создать файл xlsb напрямую, однако вы можете сначала создать файл xlsx, а затем преобразовать.

Обратите внимание, что для этого вам не нужны панды, лучше используйте openpyxl напрямую. Кроме того, не создавайте все комбинации с помощью list, это будет излишне занимать много места в памяти, если комбинаций много, а лучше зацикливаться непосредственно на выводе combinations:

from openpyxl import Workbook
import itertools

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

wb = Workbook()
ws = wb.active

for comb in itertools.combinations(numbers, 15):
    ws.append(comb)
    
wb.save('combinations.xlsx')

Чтобы затем преобразовать в xlsb, следуйте этому подходу (для которого требуются Windows и Excel).

Выход:

Я не понимаю, почему я получаю сообщение об ошибке: >>> из рабочей книги импорта openpyxl >>> импортировать itertools >>> >>> числа = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] >>> >>> wb = Workbook() >>> ws = wb.active >>> >>> для расчески в itertools.combinations(numbers, 15) : ... ws.append(comb) ... wb.save('combinations.xlsx') Файл "<stdin>", строка 3 wb.save('combinations.xlsx') ^^ SyntaxError: неверный синтаксис

ROCA 08.08.2024 14:38

Извините, это был просто отступ... сработало

ROCA 08.08.2024 14:40

Другие вопросы по теме