我编写了一个 Python 脚本,它使用 YouTube 的 API 处理目录中的视频上传到 YouTube,然后将每个文件移出该目录。它本来是一个 cron 作业,上传部分可以正常工作,但由于某种原因,它无法移动文件。我不明白为什么它无法移动文件。cron 作业以用户“joe”的身份运行。
这是我在输出中得到的错误:
mv: cannot stat '/home/joe/KM/queue/FC9682GS01-I04 WMOMANAAAA.mp4': No such file or directory
以下是通过 Python 脚本调用的命令示例os.system():
/usr/local/bin/youtube-upload --title="FC9682GS33-I02 WMOMAA6AAB FLASHWAVE 7500 FW7500 GB ETHRNT MXPD" --description="FC9682GS33-I02 WMOMAA6AAB FLASHWAVE 7500 FW7500 GB ETHRNT MXPD" --tags="FC9682GS33-I02,WMOMAA6AAB,FLASHWAVE 7500,FW7500 GB ETHRNT MXPD" --client-secrets="/home/joe/KM/KM-client-secret.json" --privacy public "/home/joe/KM/queue/FC9682GS33-I02 WMOMAA6AAB.mp4" && mv "/home/joe/KM/queue/FC9682GS33-I02 WMOMAA6AAB.mp4" "/home/joe/KM/completed/FC9682GS33-I02 WMOMAA6AAB.mp4"
ls -la KM 从 ~/ 运行的输出:
ls -la KM
total 384
drwxr-xr-x 8 joe joe 4096 Feb 1 13:49 .
drwxr-xr-x 19 joe joe 4096 Feb 1 13:49 ..
drwxr-xr-x 2 joe joe 147456 Feb 1 08:15 completed
drwxr-xr-x 2 joe joe 4096 Jan 25 00:26 data
-rwxr-xr-x 1 joe joe 443 Dec 28 11:13 KM-client-secret.json
drwxr-xr-x 3 joe joe 4096 Jan 24 23:07 openshot
drwxr-xr-x 2 joe joe 192512 Feb 1 08:15 queue
drwxr-xr-x 2 joe joe 4096 Jan 26 10:16 temp
drwxr-xr-x 2 joe joe 4096 Jan 24 23:14 templates
-rwxr-xr-x 1 joe joe 4198 Feb 1 13:49 upload-cron.py
-rwxr-xr-x 1 joe joe 4320 Jan 24 19:03 upload.py
-rwxr-xr-x 1 joe joe 3804 Jan 25 01:30 video-generator.py
该文件位于 /home/joe/KM/queue/ 中,其权限如下:
ls -la "FC9682GS33-I02 WMOMAA6AAB.mp4"
-rwxr-xr-x 1 joe joe 5520724 Jan 26 06:21 FC9682GS33-I02 WMOMAA6AAB.mp4
Cron 任务如下所示:
* 6 * * * /usr/bin/python /home/joe/KM/upload-cron.py
更新:
在调试中,我决定尝试添加一个初始动量命令。我调整了操作系统调用看起来像这样:
mv "/home/joe/KM/queue/3AL46325BA SNUXYV0AAA.mp4" "/home/joe/KM/temp/3AL46325BA SNUXYV0AAA.mp4" && /usr/local/bin/youtube-upload --title="3AL46325BA SNUXYV0AAA 1641 SX RISC PROCR BOARD" --description="SNUXYV0AAA USED ALCATEL PARTS" --tags="3AL46325BA,SNUXYV0AAA,1641 SX,RISC PROCR BOARD" --client-secrets="/home/joe/KM/KM-client-secret.json" --privacy public "/home/joe/KM/temp/3AL46325BA SNUXYV0AAA.mp4" && mv "/home/joe/KM/temp/3AL46325BA SNUXYV0AAA.mp4" "/home/joe/KM/completed/3AL46325BA SNUXYV0AAA.mp4"
此更改已修复该问题。我无法解释修复机制。但是,如果我将其改回通过以下方式推送的原始字符串操作系统,它又坏了。
答案1
我遇到了同样类型的问题,并在 Ubuntu 20.04 上使用以下方法解决了它。
- sudo apt install -y 排毒
- 将文件/文件夹移动到父文件夹,比如说“ssd”——如果它不存在,一定要创建它
- 然后运行“detox -r -v ssd”
如果文件/文件夹名称中包含无效或不可见字符,则它们将被删除。
然后你可以再试一次“mv”命令。上述步骤帮助我解决了问题