删除关联的*.py文件时,为什么要删除*.pyc文件

war*_*iuc 3 python linux ubuntu file process

请参阅最后的更新.

我使用的是Ubuntu Linux 11.10,Python 3.

我写了一个Python脚本,它使用pyuic4将一些Qt*.ui文件转换为*.py.然后我想将获得的*.py文件编译为*.pyc并删除*.py文件.

出于某种原因,当我删除转换后的*.py文件时,*.pyc版本也会被删除:

try:
    command = 'pyuic4 -o /home/vic/ui_form.py /home/vic/form.ui'
    output = subprocess.check_output(command, shell= True, stderr= subprocess.STDOUT)
except subprocess.CalledProcessError as e:
    print('Failed:', e.output)
else:
    print('Converted %s to %s' % (source, targetName))

# convert *.py to *.pyc and delete the source
source = '/home/vic/ui_form.py'
target = source + 'c' # py -> pyc
py_compile.compile(source, target)
#shutil.copy(target, target + '_') # if uncommented - the *.pyc_ file remains
os.remove(source) # if commented - both *.py and *.pyc files remain, otherwise both deleted (?)
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么(请参阅代码中的注释以获取更多信息).

如果我发现WHO删除了文件,我想我会有一个提示 - 也许是pyuic4?

我有可能监视哪个进程删除文件?


更新:

我正在逐步调试.执行后,os.remove(source)两个文件(*.py - source和*.pyc)都被删除.

这可能是一些Python行为吗?

al.*_*al. 6

您可以设置sysctl -w vm.block_dump=1查看每个文件系统操作dmesg.(高音量,所以之后再次禁用)