为什么在Python目录中创建postscript文件?

时间:2013-06-27 08:26:52

标签: python postscript

我有一个python脚本,可以导入一些Python模块,例如bs4jsonosrequestssignal,{{1} }和sys。有时我会在我的PWD中注意到以下文件:

time

但是,这些不是Python文件,而是似乎是Postscript文件。例如:

$ ls -la
-rw-rw-r-- 1 dotancohen dotancohen 12429677 Jun 26 11:37 bs4
-rw-rw-r-- 1 dotancohen dotancohen 12291853 Jun 26 11:36 json
-rwxrwxr-x 1 dotancohen dotancohen     1681 Jun 26 11:51 my-app.py
-rw-rw-r-- 1 dotancohen dotancohen 12291851 Jun 26 11:36 os
-rw-rw-r-- 1 dotancohen dotancohen 12291855 Jun 26 11:36 random
-rw-rw-r-- 1 dotancohen dotancohen 12291851 Jun 26 11:36 re
-rw-rw-r-- 1 dotancohen dotancohen 12429682 Jun 26 11:38 requests
-rw-rw-r-- 1 dotancohen dotancohen     7216 Jun 26 11:38 signal
-rw-rw-r-- 1 dotancohen dotancohen 12291852 Jun 26 11:36 sys
-rw-rw-r-- 1 dotancohen dotancohen 12429678 Jun 26 11:36 time

我从未在此目录中运行与Postscript相关的任何内容。此外,即使我$ file sys sys: PostScript document text conforming DSC level 3.0, Level 1 $ head sys %!PS-Adobe-3.0 %%Creator: (ImageMagick) %%Title: (sys) %%CreationDate: (2013-06-26T11:36:13+03:00) %%BoundingBox: -0 -0 1920 1053 %%HiResBoundingBox: 0 0 1920 1053 %%DocumentData: Clean7Bit %%LanguageLevel: 1 %%Orientation: Portrait %%PageOrder: Ascend 他们似乎在一段时间后回来了这些文件,也会定期创建它们。看到它们与在此目录中的Python脚本中导入的Python模块具有相同的名称,我怀疑它是相关的。可能是什么原因?

1 个答案:

答案 0 :(得分:16)

我会对此进行一次尝试...这看起来像我有时在没有指定Python解释器的情况下意外调用脚本时看到的内容,例如:我说./foo.py代替python foo.py,或者在脚本的开头没有#!行。当我这样做时,脚本在语法错误一段时间后失败,并且目录中填充了名为sys,os,time, et al 的文件 - 正是我在脚本中导入的模块。这些新文件相当大(7MB)。执行head sys表示文件内容与您的文件内容基本相同。我使用Linux(Ubuntu)而没有IDE用于我的Python开发,只是一个bash shell。

以下是我的想法,至少在Linux上:如果你做man import,你会看到

  

import - 在X服务器上保存任何可见窗口并将其输出为   一个          图像文件。您可以捕获单个窗口,整个屏幕或任何窗口          屏幕的矩形部分。

     

[...]

     

导入程序是ImageMagick(1)工具套件的成员。          使用它来捕获部分或全部X服务器屏幕并保存图像          到文件。

所以我猜测shell将第一行Python import语句解释为/usr/bin/import命令,并使用“参数”(模块名称)作为图像文件的名称保存。因此,PS / ImageMagick位于文件顶部。

同样,我只是在偶尔空出并调用没有Python解释器的脚本时才会看到这个。由于我不知道您的代码或使用条件,我无法保证这是您的确切问题,但我猜您正在做类似的事情(可能是在不知不觉中)。我希望这会有所帮助,让你走上正确的轨道。

编辑:这是一个基本上可以重现您的问题的实验。代码:

import sys
import random
import os
import time
import signal

def main():
    sys.stdout.write('foo\n')

if (__name__ == "__main__"):
    main()

我没有Python调用它:

./foo.py 
./foo.py: line 8: syntax error near unexpected token `('
./foo.py: line 8: `def main():'

有新文件:

$ ls
total 25096
-rwxr-xr-x 1 doug doug     146 2013-06-27 10:31 foo.py
-rw-r--r-- 1 doug doug 7291759 2013-06-27 10:12 os
-rw-r--r-- 1 doug doug 7291763 2013-06-27 10:12 random
-rw-r--r-- 1 doug doug 1903418 2013-06-27 10:32 signal
-rw-r--r-- 1 doug doug 1903415 2013-06-27 10:32 sys
-rw-r--r-- 1 doug doug 7291761 2013-06-27 10:12 time

看看他们的内容:

$ head sys
%!PS-Adobe-3.0
%%Creator: (ImageMagick)
%%Title: (sys)
%%CreationDate: (2013-06-27T10:32:20-05:00)
%%BoundingBox: 0 0 663 471
%%HiResBoundingBox: 0 0 663 471
%%DocumentData: Clean7Bit
%%LanguageLevel: 1
%%Orientation: Portrait
%%PageOrder: Ascend

同样,我希望这会有所帮助,并且有所帮助。