Hướng dẫn python rename file with creation date - python đổi tên tập tin với ngày tạo

Kịch bản: Khi tôi chụp ảnh một đối tượng, tôi chụp nhiều hình ảnh, từ nhiều góc độ. Nhân với số lượng đối tượng Tôi "chụp", tôi có thể tạo ra một số lượng lớn hình ảnh. Vấn đề: Camera tạo ra hình ảnh được xác định là 'DSCN100001', 'DSCN100002 ", v.v. khó hiểu.

Tôi kết hợp một tập lệnh sẽ nhắc nhở đặc tả thư mục [Windows], cũng như "tiền tố". Kịch bản đọc ngày và giờ tạo của tệp và đổi tên tệp cho phù hợp. Tiền tố sẽ được thêm vào mặt trước của tên tệp. Vì vậy, 'DSCN100002.jpg' có thể trở thành "FatMonkey 20110721 17:51:02". Chi tiết thời gian là quan trọng đối với tôi đối với niên đại.

Kịch bản theo sau. Xin vui lòng cho tôi biết liệu đó có phải là Pythonic hay không, liệu nó có được viết kém hay không và tất nhiên, liệu có cách làm sạch hơn - hiệu quả hơn để làm điều này. Cảm ơn bạn.

   import os
   import datetime
   target = raw_input['Enter full directory path: ']
   prefix = raw_input['Enter prefix: ']
   os.chdir[target]
   allfiles = os.listdir[target]
   for filename in allfiles:
        t = os.path.getmtime[filename]
        v = datetime.datetime.fromtimestamp[t]
        x = v.strftime['%Y%m%d-%H%M%S']
        os.rename[filename, prefix + x +".jpg"]

Đổi tên các tệp dựa trên ngày được tạo của chúng

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

Nhập khẩu, DateTime os, datetime
# Thư mục làm việc
directory='./' = './'
# Nhận danh sách các tệp trong thư mục
filelist = os.listdir [thư mục] = [['.jpg', '.jpeg']];
# Nhận danh sách các tệp trong thư mục
filelist = os.listdir [thư mục] = os.listdir[ directory ]
# Đếm số lượng tệp được đổi tên
# mẫu chuỗi thông thường = {}
# Đếm số lượng tệp được đổi tên
count=0 = 0
Forfileinfilelist: file in filelist:
newfile = 'không đổi tên'
# Nếu tên tệp khớp với mẫu được xác định, extension = os.path.splitext[file]
if [catplay.match [tệp]]:
str_year = file [4: 8] [ extension in extensions ]:
str_month = file [8:10]
str_day = file [10:12] = os.path.getctime[ file ]
str_hour = file [13:15]
str_minute = file [15:17] = datetime.datetime.fromtimestamp[ create_time ]
STR_SECOND = FILE [17:19]
# Tương phản tên mới = format_time.strftime["%Y-%m-%d %H.%M.%S"] # e.g. 2015-01-01 09.00.00.jpg
newfile = str_year+'-'+str_month+'-'+str_day+'';
newfile+= str_hour+'.'+str_minute+'.'+str_second; = format_time_string + extension;
Newfile+= File [19:]
# Đổi tên tệp [ newfile in newfilesDictionary.keys[] ]:
OS.RENAME [Tệp, Newfile]; = newfilesDictionary[newfile] + 1;
# in nhật ký[newfile] = index;
in [file.rjust [35] +'=>' +newFile] = format_time_string + '-' + str[index] + extension; # e.g. 2015-01-01 09.00.00-1.jpg
in ['tất cả đã hoàn thành.' +str [đếm] +'các tệp được đổi tên.']:
Đổi tên các tệp dựa trên ngày được tạo của chúng[newfile] = 0;
# Đổi tên tệp
OS.RENAME [Tệp, Newfile];.rename[ file, newfile ];
# Đếm số lượng tệp được đổi tên
count=count+1 = count + 1
# in nhật ký
in [file.rjust [35] +'=>' +newFile][ file.rjust[35] + ' => ' + newfile.ljust[35] ]
in ['tất cả đã hoàn thành.' +str [đếm] +'các tệp được đổi tên.'][ 'All done. ' + str[count] + ' files are renamed. ']

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

# Thay đổi tất cả các hình ảnh tên tệp từ Google Nexus 5 thành Dropbox Style trong thư mục
# Một ví dụ về tên tệp nguồn:
# IMG_20141224_204028 [1] .JPG
# Tên tệp đích:
# 2014-12-24 20,40,28 [1] .jpg
# Phát triển trong Python 3
Nhập khẩu, DateTime os, datetime
Importre# cho biểu thức chính quy re # For regular expression
# Thư mục làm việc
directory='./' = './'
# Nhận danh sách các tệp trong thư mục
filelist = os.listdir [thư mục] = os.listdir[ directory ]
# Đếm số lượng tệp được đổi tên
count=0 = 0
# mẫu chuỗi thông thường
mẫu = re.compile ['img_ \ d {8,8} _ \ d {6,6} [[0-9]]*. jpg'] = re.compile['IMG_\d{8,8}_\d{6,6}[ [0-9]]*.jpg']
Forfileinfilelist: file in filelist:
newfile = 'không đổi tên' = 'Not Renamed'
# Nếu tên tệp khớp với mẫu được xác định
if [catplay.match [tệp]]: [ pattern.match[ file ] ]:
str_year = file [4: 8] = file[4:8]
str_month = file [8:10] = file[8:10]
str_day = file [10:12] = file[10:12]
str_hour = file [13:15] = file[13:15]
str_minute = file [15:17] = file[15:17]
STR_SECOND = FILE [17:19] = file[17:19]
# Tương phản tên mới
newfile = str_year+'-'+str_month+'-'+str_day+''; = str_year + '-' + str_month + '-' + str_day + ' ';
newfile+= str_hour+'.'+str_minute+'.'+str_second; += str_hour + '.' + str_minute + '.' + str_second;
Newfile+= File [19:] += file[19:]
# Đổi tên tệp
OS.RENAME [Tệp, Newfile];.rename[ file, newFile ];
count=count+1 = count + 1
# in nhật ký
in [file.rjust [35] +'=>' +newFile][ file.rjust[35] + ' => ' + newFile ]
in ['tất cả đã hoàn thành.' +str [đếm] +'các tệp được đổi tên.'][ 'All done. ' + str[count] + ' files are renamed. ']

Bài Viết Liên Quan

Chủ Đề