从Bat

时间:2018-03-09 10:11:10

标签: python windows batch-file

我有一个标记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中使用脚本参数的行为不同?

0 个答案:

没有答案