【发布时间】:2021-09-20 12:25:54
【问题描述】:
我要再次提出这个问题,我是Python的新手,我无法解决这个问题。
当文件移动到新文件夹时,我正在尝试在此 for 循环期间打印文件名和文件大小。我知道os.path.getsize(path) 和os.stat(path).st_size 方法,但是如果我的文件每次循环都更改,我可以输入哪个路径?
此代码没有错误,但我不知道如何在文件更改时在循环期间打印数据。
src = ("C:\\..\\files")
dest1 = ("C:\\..\\files\\images")
files = os.listdir(src) #files is a list of files in a folder
for file in files:
if file.endswith(".jpg") or file.endswith(".png") or file.endswith(".jpeg"):
if not os.path.exists(dest1):
os.mkdir(dest1)
shutil.move(src + "/" + file, dest1) #for every file that is moved I have to print filesize and filename.
#print(??)
【问题讨论】:
-
您的问题不清楚,请考虑根据stackoverflow.com/help/how-to-ask改写
-
您好,欢迎您!请查看stackoverflow.com/help/minimal-reproducible-example,并希望一次只关注一个问题。另请查看
pathlib.Path以方便路径操作。在更简洁的代码/重构中,尝试一次做“一件事”,你在 for 循环中有几件事发生。 -
您收到实际的错误消息了吗?如果是这样,将其添加到您的问题中会很有用。还可以尝试发布一个更简单的问题示例,它不必是您的实际代码,而是一个演示问题的更短示例。我可能建议的一种方法是将代码分成两个循环:一个构建(原始文件->重命名文件)对列表(可能是字典或元组列表?),另一个进行实际移动。在那之后,考虑将第一个循环(从一些输入数据构建一个字典)转换为一个字典理解/列表理解。只是一个想法。
-
我把问题简化了,希望现在更清楚。