Почему файлы postscript создаются в каталоге Python?

у меня есть скрипт python, который импортирует некоторые модули Python, такие как bs4, json, os, requests, signal, sys и time. Иногда я замечаю в своем PWD следующие файлы:

$ 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

однако это не файлы Python, а, скорее, файлы 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

Я никогда не запускал ничего, связанного с Postscript в этом каталоге. Более того, даже если я ... --9--> файлы, которые они, кажется, возвращаются через некоторое время, так что периодически их создания. Поскольку они имеют те же имена, что и модули Python, импортируемые в скрипт Python в этом каталоге, я подозреваю корреляцию. Что может быть причиной?

1 ответов


Я попробую... Это похоже на то, что я иногда вижу, когда случайно вызываю скрипт без указания интерпретатора Python, например, я говорю ./foo.py вместо python foo.py или нет #! строка в начале сценария. Когда я это делаю, скрипт через некоторое время терпит неудачу с синтаксической ошибкой, и каталог заполняется файлами с именем sys, os, time, et al -- именно те модули, которые я импортировал в свой скрипт. Эти новые файлы довольно большие (7MB). Делать head sys показывает содержимое файла по существу то же самое, что и у вас. Я использую Linux (Ubuntu) и не IDE для моей разработки Python, просто оболочку bash.

вот что я думаю, происходит, по крайней мере, в Linux: Если вы это сделаете man import вы увидите

import-сохраняет любое видимое окно на X-сервере и выводит его как - файл изображения. Вы можете захватить одно окно, весь экран или любой прямоугольная часть экрана.

[...]

программа импорта является членом набора инструментов ImageMagick(1). Используйте его, чтобы захватить часть или весь экран X-сервера и сохранить изображение в папку.

поэтому я предполагаю, что оболочка интерпретирует первую строку Python import отчетность /usr/bin/import команда и использование "аргумента" (имя модуля) в качестве имени файла изображения для сохранения. Следовательно, материал PS / ImageMagick в верхней части файл.

опять же, я вижу это только тогда, когда я иногда пробел и вызываю свой скрипт без интерпретатора Python. Поскольку я не знаю ваш код или Условия использования, я не могу гарантировать, что это ваша точная проблема, но я предполагаю, что вы делаете что-то подобное (возможно, неосознанно). Я надеюсь, что это поможет и выведет вас на правильный путь.

EDIT: вот эксперимент, который в основном воспроизводит вашу проблему. Код:

import sys
import random
import os
import time
import signal

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

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

Я вызываю его без питона:

./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

опять же, я надеюсь, что это проливает свет и немного помогает.