解压6将pyc转换为py文件python 3(整个目录)
我有200个pyc文件需要在一个文件夹中转换。我知道通过解压6将pyc转换为py文件python 3(整个目录),python,python-3.x,decompiling,pyc,Python,Python 3.x,Decompiling,Pyc,我有200个pyc文件需要在一个文件夹中转换。我知道通过uncompyle6-o将pyc转换为py文件。31.pyc然而,由于我有这么多pyc文件,这将需要很长时间。我发现了大量的文档,但没有大量转换为py文件。解压6-o.*。pyc不受支持 您知道如何实现这一点吗?在具有shell文件名扩展的操作系统中,您可以使用shell的文件扩展功能。例如: uncompyle6 -o /tmp/unc6 myfiles/*.pyc 如果您需要更高级或更多的控制,您可以编写一些代码来进行高级扩展。下面是
uncompyle6-o将pyc转换为py文件。31.pyc
然而,由于我有这么多pyc文件,这将需要很长时间。我发现了大量的文档,但没有大量转换为py文件。解压6-o.*。pyc不受支持
您知道如何实现这一点吗?在具有shell文件名扩展的操作系统中,您可以使用shell的文件扩展功能。例如:
uncompyle6 -o /tmp/unc6 myfiles/*.pyc
如果您需要更高级或更多的控制,您可以编写一些代码来进行高级扩展。下面是在POSIX shell中过滤出单个文件myfiles/maging.pyc
的上述操作:
cd myfiles
for pyc in *.pyc; do
if [[ $pyc != huge.pyc ]] ; then
uncompyle -o /tmp/unc $pyc
fi
done
注意:似乎这个问题在中也被问到了可能并不完美,但它对我来说非常有效
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)
这是由uncompyle6本机支持的
uncompyle6 -ro <output_directory> <python_directory>
uncompyle6-ro
告诉工具递归到子目录中-r
告诉工具输出到给定目录-o