![](/img/trans.png)
[英]Python: Loop through a folder and save data from first tab of each file and save to new file on separate tabs
[英]python separate file by extension and save into folder accordingly
我正在獲取文件名作為實例,文件很容易保存到數據庫中,根本沒有問題。 但是我需要檢查文件擴展名並將文件保存到單獨這樣
我期望像這樣的單獨文件擴展名的輸出並相應地保存
phots
image1.jpg
image2.jpg
text
text1.txt
text2.txt
這是我的模特班
class Album(models.Model):
file_upload = models.FileField(upload_to=content_file_name)
name_content = models.CharField(max_length=100)
功能在這里
def content_file_name(instance, filename):
upload_dir = os.path.join('uploads', 'resource')
return os.path.join(upload_dir, filename)
使用splitext
獲取擴展名:
def content_file_name(instance, filename):
name, ext = os.path.splitext(filename)
ext = ext.lstrip(".") # Remove leading dot
if ext in ("jpg", "jpeg", "png"):
subdir = "phots"
elif ext in ("txt", "asc"):
subdir = "text"
else:
subdir = extension
upload_dir = os.path.join('uploads', 'resource', subdir)
return os.path.join(upload_dir, filename)
您可以使用.endswith功能並檢查
if filename.endswith("jpg") or silename.endswith("jpeg"):
subdir = "phots"
elif filename.endswith("txt") or filename.endswith("asc"):
subdir = "docs"
我更喜歡映射,而不是if / else語句,因為它更具擴展性。
dir_map = {".jpg" : "photos",
".jpeg" : "photos",
".png" : "photos",
".txt" : "text",
".asc" : "text"
}
_, ext = os.path.splitext(filename)
subdir = dir_map.get(ext, "other")
return os.path.join("uploads", "resource", dir_map.get(ext, "other"), filename)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.