Như ta đã biết đối với window khi ta copy file từ máy này sang máy khác thì trong file sẽ chứa một số thông tin cũ như: ngày tạo, ngày chỉnh sửa, thông tin hệ điều hành… Xuất phát từ một số nghiệp vụ cần phải tạo file mới với nội dung của file cũ nhưng không được chứa bất cứ thông tin gì ở máy tính cũ cả. Với 1-2 file ta có thể copy tay nội dung từng file nhưng với hàng chục, hàng trăm file thì rất mất thời gian và dễ sau sót.
Với script này viết bằng python trên window, sẽ tiến hành tạo từng file mới tương ứng từng thư mục, đọc nội dung text từ file cũ và chuyển sang file mới tương ứng. Tiết kiệm rất nhiều thời gian và sức lực thực hiện các công việc thủ công này.
Script này mình viết bằng Python 3.8, đã xử lý được với nội dung file utf-8…
Nội dung Script:
import os
path = os.getcwd()
m = ''
print(path)
l=len(path)
files = []
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
for file in f:
if '.xml' in file:
files.append(os.path.join(r, file))
if '.java' in file:
files.append(os.path.join(r, file))
if '.json' in file:
files.append(os.path.join(r, file))
if '.cpp' in file:
files.append(os.path.join(r, file))
if '.html' in file:
files.append(os.path.join(r, file))
if '.kt' in file:
files.append(os.path.join(r, file))
print(path+'\\new\\'+r[l:])
m=path+'\\new\\'+r[l:]
if not os.path.exists(m):
os.makedirs(m)
print("Directory " , m , " Created ")
else:
print("Directory " , m , " already exists")
print('#')
for f in files:
print(f)
print(f.replace(path,path+'\\new\\'))
print('#')
a = open(f, "r" , encoding="utf-8")
m = open(f.replace(path,path+'\\new\\'), "w", encoding="utf-8")
m.close()
n = open(f.replace(path,path+'\\new\\'), "a", encoding="utf-8")
for x in a:
n.write(x)
n.close()
Cách sử dụng: Lưu script thành file taofile.py tại thư mục cần làm (thư mục này có thể chứa các thư mục con). Dùng CMD trỏ đến thư mục này rồi gõ: python taofile.py hoặc chạy trực tiếp file taofile.py. Thư mục New sẽ được tạo ra với các file mới và thư mục mới tương đương.