Python thêm ngày vào tên tệp

Đối với mục đích trình diễn, giả sử rằng một tệp có tên "Sản phẩm" được lưu trữ theo đường dẫn sau

C. \Users\Ron\Desktop\Test

Lưu ý rằng bạn sẽ cần sửa đổi đường dẫn tệp để phản ánh vị trí lưu trữ tệp trên máy tính của bạn

Bước 2. Đổi tên tệp

Để đổi tên tệp bằng Python, bạn cần nhập gói os

Sau đó, bạn có thể sử dụng mẫu sau để đổi tên tệp của mình

import os
os.rename(r'file path\OLD file name.file type',r'file path\NEW file name.file type')

Trong bối cảnh ví dụ của chúng tôi

  • Đường dẫn tập tin. C. \Users\Ron\Desktop\Test
  • Tên tệp CŨ. Các sản phẩm
  • tên tập tin MỚI. Sản phẩm đã vận chuyển
  • Loại tệp. txt

Đừng quên đặt “r” trước đường dẫn tệp để tránh lỗi sau trong Python

(lỗi unicode) codec 'unicodeescape' không thể giải mã byte ở vị trí 2-3. rút ngắn \UXXXXXXX thoát

Mã Python hoàn chỉnh để đổi tên tệp văn bản từ “Sản phẩm” thành “Sản phẩm đã vận chuyển” là

import os
os.rename(r'C:\Users\Ron\Desktop\Test\Products.txt',r'C:\Users\Ron\Desktop\Test\Shipped Products.txt')

Chạy mã (được điều chỉnh theo đường dẫn tệp của bạn) và bạn sẽ nhận được tên tệp mới

Sản phẩm đã vận chuyển

Bước tùy chọn. Thêm dấu ngày khi đổi tên tệp

Giả sử bạn muốn thêm dấu ngày khi đổi tên tệp

Bạn có thể hoàn thành tác vụ này bằng gói datetime

Trong ví dụ của chúng tôi, để đổi tên tệp "Sản phẩm" thành "Sản phẩm đã vận chuyển" + dấu ngày, bạn cần áp dụng mã này (được điều chỉnh theo đường dẫn tệp của bạn)

Là một Noob hoàn toàn với Python, việc thêm ngày vào cuối tên tệp có vẻ khá đơn giản… nhưng tôi đã mất một giờ để giải quyết nó *facepalm được chèn vào đây*

Đầu tiên trong tập lệnh của tôi, tôi đã nhập phần “ngày” của từ thư viện “datetime”,

from datetime import date                   
today = date.today()
print("Today's date:", today)

Khi tạo tệp (và đây là phần tôi mất một giờ để tìm), bạn sẽ cần đặt một xác thực sử dụng “hôm nay”

Date = (today)

Khi bạn đã đặt ngày, bạn có thể thêm ngày này vào tên tệp bằng cách sử dụng “+ (str(Date))”

with open('d:/Test/Webversion-' + (str(Date)) + '.txt', 'w') as output:       
output.write("Today's Date - ")
output.write("\n")

Điều khiến tôi mất một chút thời gian là chỉnh sửa các dấu trích dẫn đơn ở đúng vị trí, bạn có thể thấy cách tôi đã sử dụng điều này trong một tập lệnh trên GitHub của mình…

Với ngày hiện tại, chúng tôi có thể tạo một tên tệp duy nhất mỗi ngày. Và sau này, các tệp này có thể được sắp xếp và truy cập theo ngày. Điều này là thuận tiện

chương trình ví dụ. Đây là một chương trình ví dụ. Chúng tôi giới thiệu phương thức get_filename_datetime. Chúng tôi nhập mô-đun datetime. Trong phương thức, chúng tôi nối một tên tệp dựa trên ngày. hôm nay

Lưu ý Chúng tôi sử dụng phần mở rộng txt, nhưng điều này có thể dễ dàng thay đổi. Chúng ta phải chuyển đổi ngày. today() kết quả thành một chuỗi với str

từ ngày nhập datetime def get_filename_datetime(). # Sử dụng ngày hiện tại để lấy tên tệp văn bản. trả về "tệp-" + str (ngày. hôm nay()) + ". txt" # Nhận đường dẫn đầy đủ để viết. name = get_filename_datetime() print("TÊN", name) path = "C. \\chương trình\\" + in tên("PATH", đường dẫn); với open(path, "w") là f. # Ghi dữ liệu vào tệp. f. write("HELLO\n") f. write("WORLD\n") NAME file-2017-05-17. txt ĐƯỜNG DẪN C. \chương trình\file-2017-05-17. txtCHÀO THẾ GIỚI

Thông thường, thật thuận tiện khi đưa ngày và giờ hiện tại vào tệp nhật ký. Trong Python, điều này khá dễ thực hiện

from datetime import datetime

filename = f"Temperature log-{datetime.now():%Y-%m-%d %H-%m-%d}.csv"

Điều này sẽ tạo tên tệp như

Temperature log 2020-06-17 22-37-41.csv
Temperature log 2019-12-31 00-15-55.csv

Lưu ý nếu bạn sử dụng định dạng Ngày/giờ khác, bạn cần tránh các ký tự đặc biệt không được xuất hiện trong tên tệp. Các quy tắc xác định tên tệp trên Linux dễ dàng hơn nhiều so với trên Windows, nhưng vì bạn phải tương thích với cả hai hệ điều hành, nên bạn phải luôn kiểm tra các quy tắc của Windows

Các ký tự này bị cấm đối với tên tệp Windows

<>:"/\|?*

Định dạng ngày-giờ mà chúng tôi đã sử dụng ở trên, %Y-%m-%d %H-%m-%d được chế tạo đặc biệt để tránh dấu hai chấm trong các định dạng ngày/giờ giống ISO-8601, chẳng hạn như 2020-04-02 11:45:33 vì dấu hai chấm sẽ là bất hợp pháp trong tên tệp Windows (tuy nhiên, chúng sẽ hoạt động trong tên tệp Linux). %Y-%m-%d %H-%m-%d chỉ chứa các ký tự khoảng trắng và dấu gạch ngang (_______11_______) để tránh mọi vấn đề với quy tắc tên tệp

Nếu bài đăng này giúp ích cho bạn, vui lòng cân nhắc mua cà phê cho tôi hoặc quyên góp qua PayPal để hỗ trợ nghiên cứu và xuất bản các bài đăng mới trên TechOverflow