- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个文件夹,里面有照片,我想将照片从那个文件夹移动到另一个文件夹。文件:
IMAG_01.JPG
IMAG_02.JPG
IMAG_03.JPG
IMAG_04.JPG
IMAG_05.JPG
IMAG_06.JPG
IMAG_07.JPG
IMAG_08.JPG
IMAG_09.JPG
我的代码:
import os.path
import shutil
src = '/var/www/html/uploads/'
dst = '/media/pi/external/Photos/'
num_files = len([f for f in os.listdir(src)])
print(num_files)
for x in range(num_files):
print(x)
picture = (os.listdir(src)[x])
print(picture)
shutil.move(src+picture,dst+picture)
当我运行代码时,它会占用一半的文件,然后在 picture = (os.listdir(src)[x] 上给我一个
。输出如下:index out of range
错误)
12
0
IMAG_04.jpg
1
IMAG_07.jpg
2
IMAG_01.jpg
3
IMAG_02.jpg
4
IMAG_09.jpg
5
IMAG_08.jpg
6
Traceback (most recent call last):
File "upload.py", line 11, in <module>
picture = (os.listdir(src)[x])
IndexError: list index out of range
我知道它告诉我 x 不在列表中,但我不明白为什么会抛出错误,因为它应该从 0 开始到 8。
最佳答案
你把事情搞得太复杂了。您在移出文件时反复调用 os.listdir()
。因此,您的结果列表每次都会变得越来越短。
一开始有 12 个名字,但是一旦你移动了一个,你现在在目录中只有 11 个名字,然后是 10 个,当你的 x
值达到 6
,只剩下 6 个名称,索引为 0
到 5
,因此 os.listdir()[x]
失败并返回 IndexError
异常。
您不需要长度,也不需要使用 range()
。调用 os.listdir()
一次,然后循环结果:
import os.path
import shutil
src = '/var/www/html/uploads/'
dst = '/media/pi/external/Photos/'
for picture in os.listdir(src):
print(picture)
shutil.move(os.path.join(src, picture), os.path.join(dst, picture))
现在您在开始时有了一个包含所有名称的完整列表,for
循环将这些名称一一分配给 picture
变量。这些名称被移出不再重要,因为我们不再调用 os.listdir()
。
关于python - shutil 没有移动所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431402/
shutil.move(src, dest) 方法是否调用 os.system() 方法或 bash 命令“mv”和“cp”? P.S : 我在网上搜索但找不到任何有用的信息。 最佳答案 使用来源卢克
我正在构建一个相对简单的应用程序,它请求目录,检查它们是否正确,然后删除其中一个并使用另一个目录的内容重新创建它。我遇到了这种奇怪的行为,我会尝试解释: 当我打开目标文件夹窗口并且它是空的时,出现
我正在尝试在Python中使用shutil模块。我想将文件夹 ('movee') 从我的 cwd 复制到 'D' 驱动器。代码如下: import shutil shutil.copytree('mo
我有一个很大的图像数据集(大约 3000 个文件)。我的问题很简单,我想将随机选择的图像文件复制到另一个目的地。我使用 random.sample 选择五百张图片并将它们的名称存储在列表中。我现在想将
昨天,根据一位海报的出色建议,我开始使用 shutil.copyfileobj 方法制作文件副本。 我的程序应该制作文件的精确副本,删除最后一个字节并保存新副本。 我昨晚用一些非常小的 ASCII 文
我有一个文件夹,里面有照片,我想将照片从那个文件夹移动到另一个文件夹。文件: IMAG_01.JPG IMAG_02.JPG IMAG_03.JPG IMAG_04.JPG IMAG_05.JPG I
我正在尝试对shutil.copyfileobj()函数进行猴子修补,以便将其默认长度从16*1024更改为更大的值(128*1024)。在内部,其他 Shutil 方法(如 move)调用 copy
我想移动很多文件。这些文件的路径存储在列表中。我想保留整个目录结构,但想将它们移动到不同的文件夹。 例如文件是D:\test\test1\test1.txtD:\test\test1\test2.tx
尝试处理我的第一个脚本的新 Python 开发人员。目标是编写一个应用程序,通过根据文件类型将文件放入子文件夹来清理我的下载文件夹。 这是我的代码: import shutil import os d
我正在尝试编写一个简单的 python 脚本来移动文件,因为它们进入 ubuntu 中的文件夹。 我正在将文件从我的本地机器移动到我的网络 ubuntu 机器。 请参见下面的代码: f
编程的新手,使用 Python 和“艰难地学习 Python”深入研究它。 出于某种原因,我无法使用 shutil.copy 来复制文件。在我的桌面上,我目前有一个文件“test1.txt”和另一个“
https://docs.python.org/3/library/shutil.html#shutil.move说 If the destination is on the current file
根据http://docs.python.org/library/shutil.html使用这些方法不会复制元数据,包括所有权、ACL 和资源分支。使用基本文件读取方法打开文件并将其逐行写回重复文件是
整个晚上都在为此奋斗。三天前还可以工作,现在我再也无法让它工作了。 当我尝试使用这个时 def unzip_file(archiveFile, finalFolder, archiveFolder)
[编辑:请参阅下面的最终代码]我使用下面的代码从源目录中随机选择 5 个文件,然后将它们复制到新目录。它给了我一个 IO 错误,其中显示“不存在这样的文件或目录‘x’”,其中“x”是不带目录路径的文件
我尝试在析构函数中删除创建的目录: shutil.rmtree("C:\\projects\\project_alpha\\tmp") 它不适用于我的 python 脚本,但是当我通过 python
我想使用函数 shutil.copytree 从我的计算机上的本地服务器复制文件夹,我使用的是 macOS,但今天我遇到了问题,python 总是向我显示相同的消息,“[错误 1] 操作不允许”,但是
我正在尝试使用 python 删除目录,但我不想在此过程中递归删除整个目录路径:即 /home/dir/dir/dirtoberemoved 所以我不想删除更高级别的任何内容,只是一个目录及其所有内容
我正在使用 shutil.copy 将一个文件的内容复制到另一个文件。然而,它导致我的原始文件被删除,并出现“文件中没有数据”的错误 我第一次尝试这个 import shutil sh
我有一个代码,用于将所有 jpg 文件从源移动到目标。代码第一次运行良好,它移动了文件,但如果我再次运行它,它会给出一个文件已存在的错误。 Traceback (most recent call la
我是一名优秀的程序员,十分优秀!