I'tenho aprendido a programar com um livro introdutório muito fixe para C e escrevo todos os exemplos e tarefas para poder aprender a sintaxe de cor. Fiz cada ficheiro manualmente até agora, mas o clique, nomear e guardar torna-se cansativo.
Preciso de uma forma de criar múltiplos ficheiros como bspl0001.c
, bspl0002.c
, bspl0003.c
, etc. e salvá-los em directório "learning_c" ou algo assim.
I'sou um noob com o Ubuntu / Linux e, honestamente, só o execute através do VirtualBox porque o IDE Geany foi fácil de configurar. Assim, eu não'não sei realmente como funciona o Terminal.
edit I'acabo de me encontrar neste meu antigo relato e estou a abanar a cabeça sobre o porquê de querer alguma vez aprender uma sintaxe de código de cor. Curiosamente, estou quase a terminar os meus estudos de CS / Matemática BSc. Muito obrigado pela ajuda em retrospectiva!
Pode fazer isto com estes comandos:
mkdir learning_c
cd learning_c
touch bspl{0001..0003}.c
"mkdir learning_c
learning_c
na pasta actual~
cd
(isto é, cd Desktop
)'cd learning_c `c
*touch bspl{0001..0003}.c
touch
é uma ferramenta para criar ficheiros vazios e modificar carimbos temporais; nós're-criamos ficheiros vazios.
touch myfile
irá criar um ficheiro vazio chamado myfile
.
O código feio que se segue (bspl{0001..0003}.c
) é chamado **brace expansion***. Esta é uma grande característica da "barra" que lhe permite criar longas listas de combinações arbitrárias de cordas. Pode saber mais sobre isto na Bash Hackers Wiki. Neste caso, estará a fazer uma longa lista de parâmetros que serão passados para touch
. Poderá também utilizar o seu longo equivalente:
touch bspl0001.c bspl0002.c bspl0003.c
Pode alterar o número de ficheiros: se quiser 12 ficheiros, pode executar bspl{0001..0012}.c
.
Os zeros iniciais (0012
em vez de 12
) asseguram que a saída utiliza 4 dígitos de zero-padded.
Porquê criar todos os ficheiros de uma só vez? A desvantagem é que terá muitos ficheiros vazios e não utilizados. O que estou realmente a utilizar: prima uma combinação de teclas para:
Tudo num só pressionamento de teclas. Desta forma, evita-se muitos ficheiros (ainda) não utilizados; os ficheiros só são criados se precisar deles.
Uma versão simplificada abaixo (não está a decorrer o passo 3). Em cada pressionamento de teclas, criará um ficheiro correctamente numerado, como por exemplo:
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
Copiar o guião para um ficheiro vazio
Na secção da cabeça, defina o caminho para o seu directório (e opcional: mudar o nome da base e/ou extensão, shebang).
Guardar o guião como create_empty.py
Execute o guião a partir de um atalho: Configurações > do sistema; Teclado > Atalhos personalizados. Adicionar o comando:
python3 /caminho/para/criar_empty.py
Pode utilizar o seguinte código python, pode modificá-lo de acordo com as suas necessidades.
Guarde o seguinte código com o nome de ficheiro `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"])
E depois executá-lo com este comando:
python filecreator.py