Uncompyle6将pyc转换为py文件python 3(整个目录)

Uncompyle6 convert pyc to py file python 3 (Whole directory)

我有200个pyc文件,需要在一个文件夹中进行转换。 我知道可以通过uncompyle6 -o . 31.pyc将pyc转换为py文件,但是由于我有很多pyc文件,这将需要很长时间。 我发现了很多文档,但没有大量批量转换为py文件。 uncompyle6 -o。 * .pyc不被支持。

关于如何实现此目标的任何想法吗?


在具有外壳程序文件名扩展功能的操作系统中,您也许可以使用外壳程序的文件扩展功能。 例如:

1
uncompyle6 -o /tmp/unc6 myfiles/*.pyc

如果您需要更高级的控件或更多控件,则始终可以编写一些可以进行更高级扩展的代码。 这是在POSIX Shell中完成的上述操作,过滤出单个文件myfiles/huge.pyc

1
2
3
4
5
6
cd myfiles
for pyc in *.pyc; do
   if [[ $pyc != huge.pyc ]] ; then
     uncompyle -o /tmp/unc $pyc
   fi
done

注意:使用Windows批处理命令" FOR / R"执行命令时,似乎在输出目录的"问题"中也提出了此问题


可能并不完美,但对我来说效果很好。

1
2
3
4
5
6
7
8
9
10
11
12
13
import os
import uncompyle6
your_directory = ''
for dirpath, b, filenames in os.walk(your_directory):
    for filename in filenames:
        if not filename.endswith('.pyc'):
            continue

        filepath = dirpath + '/' + filename
        original_filename = filename.split('.')[0]
        original_filepath = dirpath + '/' + original_filename + '.py'
        with open(original_filepath, 'w') as f:
            uncompyle6.decompile_file(filepath, f)