質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1332閲覧

PythonでゼロからExcelを作成、操作

LFOHP

総合スコア25

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/12 04:39

編集2020/06/12 07:14

前提・実現したいこと

Pythonを学習中です。
Excelでの作業を簡略化しようと奮闘しています。
pythonコード(base.ipynb)から、ゼロの状態からディレクトリ作成からexcelファイル書き込みを目指しています
手順は
(1)新規ディレクトリ作成、
(2)その中に既定のexcelファイルコピー(これにデータを流し込む)
(3)さらにそのディレクトリに空のsample.ipynbファイルを作成、コードの書き込み(これでexcelファイルを操作)
(4)excelに書き込むデータ準備
(5)sample.ipynbファイルを実行して、データをexcelファイルに書き込み
を行おうとしています。
base.ipynbに記載するコードの(3)の後半でつまづいています。

base.ipynbからコードでsample.ipynbにコードを記述して、実行する方法があるでしょうか
.pyにして実行する方法でもあればご教授をお願いします。

発生している問題・エラーメッセージ

Python3

1new_pyfile_name="sample.ipynb" 2new_file_content="Hello" 3>>>sample.ipynbファイルは作成されるが、内容が空 4new_pyfile_name="sample.py" 5new_file_content="Hello" 6>>>sample.pyファイルは作成され、内容もHello 7new_pyfile_name="sample.text" 8new_file_content="Hello" 9>>>sample.textファイルは作成され、内容もHello

該当のソースコード

Python3,ipynb

1import os 2import pandas as pd 3import openpyxl 4import shutil 5 6new_pyfile_name="sample.ipynb" 7new_file_content="Hello" 8def save_file_at_new_dir(new_dir_path, new_pyfile_name, new_file_content, mode='w'): 9 with open(os.path.join(new_dir_path, new_pyfile_name), mode) as f: 10 f.write(new_file_content) 11 12save_file_at_new_dir(new_dir_path, new_pyfile_name, new_file_content) 13 14 15

試したこと

補足情報(FW/ツールのバージョンなど)

Python3
VSCode
ipynb利用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jeanbiego

2020/06/12 07:41

(3)さらにそのディレクトリに空のsample.ipynbファイルを作成、コードの書き込み(これでexcelファイルを操作) ここでつまづかれているということですが、そもそも何故これを実施されたいのでしょうか。 理由も具体的に書かれると、より良い回答が集まるかと思います。
hope_mucci

2020/06/12 08:08

"sample.ipynb"が本当に空かどうか、テキストエディア等で開いて確認してみましょう。
meg_

2020/06/12 11:47

base.ipynbでExcelを操作すれば良いかと思いますが、そうしないのは何故でしょうか?
LFOHP

2020/06/12 12:49

任意の場所にbase.ipynbを作りたいのです。すると、このファイルはexcelのディレクトリに移動させて、そのあとのコードを実行することになり余計に複雑かなと。そのパターンだとどんなコードになるのですか?
LFOHP

2020/06/12 12:58

excelファイルに書き込む作業が繰り返しあり、雛形は同じですが中身はいつも異なります。日付、申込者名前とかです。書き込んだexcelは期日ごとに個別のフォルダで管理したいのでbase.ipynbからいつも新しいフォルダもsample.ipynbも作っておけば、元となるbaseから繰り返し作成したsample.ipynbでexcelを操作できるかなと思いました。
LFOHP

2020/06/12 12:59

sample.ipynbの内容はまた確認してみます。ありがとうございます
kabayan55

2020/06/12 13:07

> pythonコード(base.ipynb)から、ゼロの状態からディレクトリ作成からexcelファイル書き込みを目指しています 手順の見直しもご検討いただけますでしょうか。手順が簡潔になれば、書くコードも少なくてすみますし、複雑になりにくいです。 質問には含まれていない部分ですが、以下、手順の提案です。 (1)新規ディレクトリ作成 (2)既定のexcelファイル(雛形?)の内容を読み込む (3)コードによって(2)のデータに対して変更を加える (4)新規Excelファイルに(3)で作ったデータを書き込む > 任意の場所にbase.ipynbを作りたいのです。すると、このファイルはexcelのディレクトリに移動させて、そのあとのコードを実行することになり余計に複雑かなと。 base.ipynb を移動させずに、読み込むディレクトリの指定場所を変更する方が楽だと思います。 > excelファイルに書き込む作業が繰り返しあり、雛形は同じですが中身はいつも異なります。 変数として設定すればよろしいのではないでしょうか。操作部分のコードは変わらないのと思うので、.ipynbを改めて生成する必要はないと思います。
meg_

2020/06/12 13:09

pythonコード中でjupyter notebookファイルを作成出来るのでしょうか?私はそのようなコードを見たことはありません。もしかしたら出来るのかもしれませんが、そもそもそのようなものを作る必要を感じません。 その他のExcelの操作自体はpythonで可能かとは思います。
LFOHP

2020/06/12 22:02

sample.ipynbの内容はtexteditで見れます。表示の問題ですね。 (1)新規ディレクトリ作成 (2)既定のexcelファイル(雛形?)の内容を読み込む (3)コードによって(2)のデータに対して変更を加える (4)新規Excelファイルに(3)で作ったデータを書き込む この手順でやってみます。 みなさんありがとうございます。
guest

回答1

0

ベストアンサー

要するにRPA的なExcelの自動操作をpythonでやりたい、ということだと思われます。
実行ごとに異なるオペレーションがあるので、都度その時に最適なコードを出力する必要があると解釈します。

ipynbファイルの中身はコードや実行結果、環境などいろいろな情報が詰まったjson形式のデータです。
ちゃんと既定のフォーマットで作成すればnotebookとして動作させることは可能でしょう。
しかし、そのためにjsonデータフォーマットの解析やら面倒な作業をしなければならないでしょう。
それよりは普通のpython実行ソース(.pyファイル)を出力してそのまま実行させたほうが遥かに楽ではないでしょうか。

質問者の環境のOSは書かれていませんがWindowsならpythonをインストールした時点で拡張子pyに対する紐づけは済んでいると思うのでエクスプローラからダブルクリックでも起動できるでしょう。

本題はどうやってpyファイルを作るか(base.ipynbから実行可能なソースコードを作成する)ですが、そればっかりは質問者さんが試行錯誤するしかないでしょう。ただ一足飛びにちゃんと作業が完了できるソースを作成するのは多大なる労力と時間がかかりますし、状況を見てる限りでは質問者さんのスキルもまだまだ足りていないでしょう。
まずはprint("Hello world")を出力するくらいから始めて、徐々にExcelを操作可能なコードを作っていくのが妥当かと思います。
pythonからExcelの操作方法がわからない、というならまずはコード出力は後回しにし、単体でExcelを操作するプログラムを作ってからのほうが断然良いでしょう。google検索すれば同じようなことを行っているコードにはいくらでも出会えるでしょう。

道のりは険しいと思いますが、為せば成り、努力は実る。頑張ってください。

投稿2020/06/12 14:39

hope_mucci

総合スコア4447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LFOHP

2020/06/12 22:04

ありがとうございます。.pyファイルがいいですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問