Почему файлы 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
опять же, я надеюсь, что это проливает свет и немного помогает.