私はC言語の入門書を使ってプログラミングを学んでいますが、構文を暗記するためにすべての例やタスクを書き留めています。今まではすべてのファイルを手動で作成していましたが、クリックしたり、名前を付けたり、保存したりするのに疲れてしまいました。
そこで、bspl0001.c
, bspl0002.c
, bspl0003.c
などの複数のファイルを作成し、それらを "learning_c" などのディレクトリに保存する方法が必要です。
私はUbuntu / Linuxの初心者で、正直なところ、IDEのGeanyの設定が簡単だったので、VirtualBox経由でしか動かしていません。そのため、Terminalがどのように動作するのかよくわかりません。
*この古いアカウントで、なぜコードの構文を暗記しようと思ったのか、頭を悩ませています。興味深いことに、私はCS / Math BScの勉強をほとんど終えています。後学のために助けてくれてありがとうございます。
これらのコマンドで行うことができます。
mkdir learning_c
cd learning_c
touch bspl{0001..0003}.c
mkdir learning_c
learning_c
というフォルダが作成されます。cd
コマンドで変更できます(例:cd Desktop
)。cd learning_c
touch bspl{0001..0003}.c
と入力します。
touch
は、空のファイルを作成したり、タイムスタンプを変更したりするツールです。
touch myfile
は myfile
という空のファイルを作成します。
これに続く醜いコード(bspl{0001..0003}.c
)は brace expansion と呼ばれます。これは bash
シェルの優れた機能で、任意の文字列の組み合わせによる長いリストを作成することができます。これについては、Bash Hackers Wikiで詳しく説明されています。今回の例では、touch
に渡すパラメータの長いリストを作ります。これに相当する長いリストを使うこともできます。
touch bspl0001.c bspl0002.c bspl0003.c
ファイルの数を変更することができます。12個のファイルが欲しい場合は、bspl{0001..0012}.c
を実行します。
先頭のゼロ(12
ではなく0012
)は、出力がゼロパディングされた4桁の数字を使用するようにしています。
なぜ一度にすべてのファイルを作成するのですか?デメリットとしては、空のファイルや使わないファイルがたくさんできてしまうことです。私が実際に使用しているもの:キーの組み合わせを押して
すべて1回のキー操作で完了します。このようにして、多くの(まだ使われていない)ファイルを防ぐことができます。ファイルは必要なときにだけ作成されます。
以下は簡易版です(ステップ3は実行していません)。キーを押すたびに、次のような正しい番号のファイルが作成されます。
bspl0001.c, bspl0002.c, bspl0003.c etc
#!/usr/bin/env python3
import os
#--- set your code directory below
dr = "/path/to/your/coding_files"
#--- set the desired (base) name extension and shebang below (leave it ""if you don't want an automatically set shebang)
name_initial = "bspl"
extension = ".c"
shebang = ""
#---
existing = os.listdir(dr)
n = 1
while True:
file = dr+"/"+name_initial+str(n).zfill(4)+extension
if os.path.exists(file):
n = n+1
else:
with open(file, "wt") as out:
out.write(shebang)
break
1.スクリプトを空のファイルにコピーする 2.headセクションに、お使いのディレクトリへのパスを設定します(オプションとして、ベース名や拡張子の変更、shebang)。 3.スクリプトを create_empty.py として保存します。 4.ショートカットからスクリプトを実行します。システム設定 > キーボード > カスタム ショートカット。コマンドを追加します。
python3 /path/to/create_empty.py
以下のpythonコードを使用することができますので、必要に応じて変更してください。
以下のコードをファイル名filecreator.py
で保存してください。
#!/usr/bin/env python
import os
import subprocess
work_path = os.path.abspath(os.path.dirname(__file__))
if not os.path.exists("learning_c"):
os.mkdir("learning_c")
os.chdir(os.path.expanduser(work_path+"/learning_c"))
n = 10 #put the number as you wish
for i in range(n):
subprocess.call(['touch', "bsdl"+str(i).zfill(4)+".c"])
そして、それをこのコマンドで実行します。
python filecreator.py