【发布时间】:2019-01-29 14:27:19
【问题描述】:
我开始使用 Raspberry Pi 3B + 和 Canon 6D 创建新的 3D 扫描仪。由于 gphoto2 库,我有一部分 Python 代码来恢复图像,但我无法更改恢复图像的名称,目前,我有两个文件:capt0000.cr2 和 capt0000.jpg 我必须将它们重命名为“时间" + .jpg 或 .cr2 但不可能,他们从不改名。
我尝试了几种方法,目前我使用的是 os.listdir 函数,该函数允许我对桌面上的所有文件进行排序。
程序开始:
from time import sleep
from datetime import datetime
from sh import gphoto2 as gp
import signal, os, subprocess
shot_date = datetime.now().strftime("%d-%m-%Y")
shot_time = datetime.now().strftime("%d-%m-%Y %H:%M:%S")
picID = "PiShots"
folder_name = shot_date + picID
save_location = "ScannerImages/" + folder_name
CaptureImageDownload = ["--capture-image-and-download"]
CaptureImage = ["--capture-image"]
功能:
def captureImageDownload():
gp(CaptureImageDownload)
def captureImage():
gp(CaptureImage)
def createFolder():
try:
os.makedirs(save_location)
except:
print("Failed to create folder")
os.chdir(save_location)
def renameFiles(ID):
for filename in os.listdir("."):
if len(filename) < 13:
if filename.endswith(".jpg"):
os.rename(filename, (shot_time + ID + ".jpg"))
print("Renamed the JPG")
elif filename.endswith(".cr2"):
os.rename(filename, (shot_time + ID + ".cr2"))
print("Renamed the CR2")
主循环:
captureImageDownload()
createFolder()
renameFiles(ID)
现在我在桌面上创建了两个文件,请参见下图: https://i.imgur.com/DDhYe1L
是因为文件权限知道我不是 root 用户吗?如果是因为这样,通常如何更改对一种文件类型的权限,例如 .jpg,因为每次它都是关于一个新图像,所以权限返回到下图: https://imgur.com/VydSeAH
【问题讨论】:
-
你能把图片放在问题中而不是放在 imgur 的链接中吗?并非所有人都可以访问图片托管网站
-
我认为问题在于您正在更改
createFolder()函数中的目录,以便在您os.listdir(".")时列出 that 文件夹中的文件。 -
@C.Nivs 抱歉,我不能发布图片,因为我是新用户。
-
@Ross 我刚刚尝试删除创建文件夹的功能,但我仍然没有更改文件的名称。
-
os.listdir(".")时为什么不打印出每个文件名,以确保您在正确的文件夹中?这将帮助您调试。
标签: python python-3.x raspberry-pi debian libgphoto2