pythonでテキストファイルの書き出す際のメモ
目次
1 スクリプト作成
メモ帳を立ち上げたらそこにpythonスクリプトのコードを書きます。
# ファイル名「カキコ.txt」に「は~ひふ~へほ~」と書き出すプログラム # 上書きモード "w" で書き出し。 # "w"を"a"に変えれば追記モードになります。実行する度に以前の書込みの後ろに付け加えられる。 with open("カキコ.txt" , "w") as f: f.write("は~ひふ~へほ~")
・pythonスクリプト名 : OpenWriteText.py
・pythonスクリプト保存先 : デスクトップ
・pythonスクリプトの文字コード : ANSI
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
名前を付けて保存でpythonスクリプト名「OpenWriteText.py」にし、ファイルの種類を全てのファイルでデスクトップに保存しました。
文字コードはデフォルトのANSIのままにしてあります。
2 コマンドプロンプトから実行
「Windowsボタン + R」→ 「cmd」と入力するとコマンドプロンプトが起動します。
「C:\Users\パソコンのユーザー名>」がいまカレントワーキングディレクトリになっています。マイホーム。夢のマイホーム。
今作ったスクリプトはデスクトップに保存したので、そこへ移動します。
「ユーザー名>」の後に cd desktopと入力。cdはチェンジ・ディレクトリのコマンド。
C:\Users\パソコンのユーザー名>cd desktop
コマンドプロンプトの表示は次のように変わります。
C:\Users\パソコンのユーザー名\Desktop>
ここでファイル名を指定してpythonを実行します。
C:\Users\パソコンのユーザー名\Desktop>python OpenWriteText.py
「python」の後にスペースを空けて、続けて「ファイル名」を入力すればOK。
実行結果がコマンドプロンプトに出力されます。
File "OpenWriteText.py", line 1 SyntaxError: Non-UTF-8 code starting with '\x83' in file OpenWriteText.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
SyntaxError: Non-UTF-8 codeなんちゃらかんちゃらとエラーが出ました。
・pythonスクリプト名 : OpenWriteText.py
・pythonスクリプト保存先 : デスクトップ
・pythonスクリプトの文字コード : ANSI
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
・python実行場所 : pythonスクリプト保存先(デスクトップ)
・実行結果 エラー SyntaxError: Non-UTF-8 code starting with '\x83' in file
保存する際に「文字コード」をANSIにしたのでエラーが出ました。
試しにpythonスクリプトの先頭に「# -*-coding : utf-8-*-」を書くと今度は
SyntaxError: (unicode error) 'utf-8' codec can't decode
・pythonスクリプト名 : OpenWriteText.py
・pythonスクリプト保存先 : デスクトップ
・pythonスクリプトの文字コード : ANSI
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
スクリプトに「# -*-coding : utf-8-*-」を追加
・python実行場所 : pythonスクリプト保存先(デスクトップ)
・実行結果 エラー SyntaxError: (unicode error) 'utf-8' codec can't decode
デコード出来ませんなんちゃらかんちゃらとエラーを吐きます。
今度はメモ帳の保存の際の文字コードの指定を変えてみます。
「名前を付けて保存」から「文字コード」をutf-8に変えて「保存」。上書きで良いか訊かれるので「OK牧場」。
再び実行。今度はどうでしょうか。
C:\Users\パソコンのユーザー名\Desktop>python OpenWriteText.py
・pythonスクリプト名 : OpenWriteText.py
・pythonスクリプト保存先 : デスクトップ
・pythonスクリプトの文字コード : utf-8
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
・python実行場所 : pythonスクリプト保存先(デスクトップ)
※一度入力したコマンドはメモリーに保存されています。
※カーソルの「↑」「↓」を押してみると候補がでます。何度も入力せずに済みます。
実行後のコマンドプロンプトの様子は
C:\Users\パソコンのユーザー名\Desktop>
今度はエラーを吐きませんでした。
・pythonスクリプト名 : OpenWriteText.py
・pythonスクリプト保存先 : デスクトップ
・pythonスクリプトの文字コード : utf-8
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
・python実行場所 : C:\Users\パソコンのユーザー名
・実行結果 成功
カキコ.txtなるテキストファイルがどこかに作られ、その中には「は~ひふ~へほ~」と書いてあるはず・・・
バイキンマンはどこだ!
はい、いました。わたし探しました。すぐ見つかりました。デスクトップにいました。凄いですね~。面白いですね~。
ではさいなら、さいなら、さいなら。
え、さて、
今回スクリプトファイルを保存したデスクトップ以外でpythonを試してみます。
C:\Users\パソコンのユーザー名>python OpenWriteText.py python: can't open file 'OpenWriteText.py': [Errno 2] No such file or directory
ユーザーのホームディレクトリで実行してみましたら、「そんなファイルやディレクトリはねぇ!」とエラーがでました。
・pythonスクリプト名 : OpenWriteText.py
・pythonスクリプト保存先 : デスクトップ
・pythonスクリプトの文字コード : utf-8
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
・python実行場所 : C:\Users\パソコンのユーザー名
・実行結果 エラー python: can't open file 'OpenWriteText.py': [Errno 2] No such file or directory
ならば、ファイル保存場所のパスをファイル名の前に含めて、別のディレクトリかpythonを実行してみます。
C:\Users\パソコンのユーザー名>python C:\Users\パソコンのユーザー名\Desktop\OpenWriteText.py
・pythonスクリプト名 : C:\Users\パソコンのユーザー名\Desktop\OpenWriteText.py (パスを付けた)
・pythonスクリプト保存先 : デスクトップ
・pythonスクリプトの文字コード : utf-8
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
・python実行場所 : C:\Users\パソコンのユーザー名
・実行結果 成功 テキスト出力場所 : C:\Users\パソコンのユーザー名
3 まとめ 注意点
pythonでファイルを書き出す際に気を付けたいのは
・スクリプトを保存する時の文字コード
・スクリプトの保存場所と実行場所
・スクリプトのファイルパスを指定するか否か
・書き出すファイルの出力保存先
スクリプトをコーディングするエディタの種類やosモジュール等をインポートすることで
コンピュータの環境が変わってもそれらを気にすることなく実行できるようになるようですが、
また別の機会に書きたいとおもいます。
ばいばいきーん