我有一个标记MP3的Python脚本并重命名它们。它在通过Pycharm中的脚本参数分配sys args时起作用。
但是,当我从一个bat调用Python文件,解析相同的两个参数时,我会遇到文件重命名的问题。
打印os.listdir
调试脚本时,我看到一堆旧的测试MP3不再出现在目录中。
我已经检查过我引用了正确的目录。但似乎某种程度上文件列表被缓存并被传递(因为我在if语句的第二部分中有一个验证检查 - 抽象函数)。
Windows是否可以缓存某些内容,或者.pyc可能是?
以下是有问题的Python的一部分......
os.chdir(directory)
for files in os.listdir("."):
if files.endswith(".mp3") and not the_file_name_is_valid(files):
log.info("Starting work on: " + files)...
从下面的bat文件运行时,os.listdir(".")
会生成一个不属于工作目录的文件列表。然而,当脚本从Pycharm运行时,它可以很好地工作。
这是蝙蝠
echo off
set SET_PREP="set_prep.py"
set DIR=%cd%
set IMAGE="cover_artwork.jpg"
c:\python27\python.exe %SET_PREP% %DIR% %IMAGE%
Pause
为什么使用命令参数运行我的脚本的行为与在Pycharm中使用脚本参数的行为不同?