File and Code Templates in Pycharm

Hi, mọi người.

Mình đang tìm hiểu cách dùng File and Code Templates in Pycharm để tạo nhiều file từ một file, ví dụ, mình tạo ra một file tên là abc.py, nó sẽ tạo thêm 2 file là abc.txt và abc_out.txt ở thư mục data.

Kiến trúc thư mục sẽ thế này:
project
–data
---- abx.txt
---- abc_out.txt
–abc.py

Mình đã tìm hiểu cái File and Code Templates khá nhiều trên youtube cũng như stackoverflow mà chưa làm được.

Mọi người giúp mình với, cám ơn.

File abx.txt với abc_out.txt chứa cái gì? Bạn tự động tạo ra bọn nó để làm gì?
Có vẻ bạn nên nghĩ về bash script để giải quyết vấn đề. Chỉ 1 dòng shell code là xong?

1 Like

đây là chỉ là một tính huống giả định mình đặt ra, 2 file đó có thể chứa dữ liệu đầu vào từ việc mình đọc file, và chưa kết quả đầu ra.

Một số frameword khi làm Backend, chẳng hạn, khi tạo một Entity, sẽ có convention để tạo Controller, Service … , trong mỗi file này lại có những method hoặc variable chứa name của entity, lại nằm ở các folder khác nhau nữa.

Nếu sử dụng File and Code Templates thì sẽ tối ưu về thời gian coding rất nhiều.

Mình cũng chưa rõ việc dùng bash script để giải quyết vấn đề nhỏ trên thế nào, bạn có thể nói rõ hơn giúp mình được không?

Cám ơn bạn.

Have a good day!

File and Code Templates ở đây mình hiểu là tạo file từ template có sẵn, template là do bạn tự định nghĩa. Nên nếu bạn không rõ nội dung file in/out thì làm sao tạo ra được? Còn việc nó được tạo bằng 1 tiện ích của Pycharm hay tạo bằng shell chỉ là phương thức khác nhau thôi?
Nói về việc dùng shell thế nào thì phải tùy vào requirement.
Giả sử requirement là tạo in/out empty file thì có thể kiểu như:

#!/bin/bash
# gendata.sh abc.py
DATAPATH="$PWD/data"
mkdir -p $DATAPATH
filename=$(basename -- "$1")
basename="${filename%.*}"
touch "${DATAPATH}/${basename}.txt"
touch "${DATAPATH}/${basename}_out.txt"

Nếu input và output bạn có format sẵn thì bạn có thể bỏ vào bash luôn

2 Likes

Hmm, mình chỉ đang quan tâm đến cách tạo ra nó như thế nào. Đây là một tính năng có trên IDE của jetbrains. Còn dĩ nhiên mình phải biết tạo ra để làm gì chứ. Phương thức khác nhau là quá đủ rồi bạn.

Ok, mình hiểu giải pháp của bạn, nhưng đó chưa phải là điều mình mong muốn, thank you.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?