Як завантажити файл в консоль python?


208

У мене є рядки коду python, які я постійно копіюю / вставляю в консоль python. Чи є loadкоманда чи щось, що я можу виконати? напрload file.py


15
import file. Немає .pyрозширення.
Мікель

1
Коли import fileвикористовується, до змінних в fileне можна отримати доступ.
Кадір

5
Насправді, можна отримати доступ до змінної. Спробуйте file.variable.
Тім Людвінський

Відповіді:


197

Для Python 2 (див. Інші відповіді для Python 3) спробуйте:

execfile('file.py')

Приклад використання:

C:\junk>copy con execfile_example.py
a = [9, 42, 888]
b = len(a)
^Z
        1 file(s) copied.

C:\junk>\python27\python
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> execfile('execfile_example.py')
>>> a
[9, 42, 888]
>>> b
3
>>>

1
Чи можете ви пояснити своє використання copy con? З того, що я читаю, він використовується лише для копіювання файлів computerhope.com/copyhlp.htm
CodyBugstein

12
Він скопіював з консолі (розглядається як файл) у execfile_example.py. ^ Z - кінець файлу. Це просто спосіб отримати текст у файл без відкриття редактора.
IJ Kennedy

Дивіться відповідь від @Arafangion, якщо ви ще не в консолі.
Баррі Макнамара

166

Із чоловічої сторінки:

-i Коли сценарій передається як перший аргумент або використовується параметр -c, увійдіть в інтерактивний режим після виконання сценарію або команди. Він не читає файл $ PYTHONSTARTUP. Це може бути корисно для перевірки глобальних змінних або стеження стека, коли сценарій викликає виняток.

Отже, це має робити те, що ви хочете:

python -i file.py

7
Це прекрасний шлях, якщо ви ще не в консолі. Дякую за підказку Arafangion
SomeShinyObject

89

Python 3: новий exec (execfile випав) !

Рішення execfile діє лише для Python 2. Python 3 скинув функцію execfile - і просунув оператор exec до вбудованої універсальної функції. Як свідчать коментарі до журналу змін Python 3.0 та коментарів Hi-Angels:

використання

exec(open(<filename.py>).read())

замість

execfile(<filename.py>)

якщо файл містить заяви про імпорт, наприклад import os, чи exec()виконує ці оператори? Я зараз це намагаюся, і, здається, відповідь "ні"
Rylan Schaeffer

25

З командного рядка оболонки:

python file.py

З командного рядка Python

import file

або

from file import *

8
І reload(file)коли ти щось змінив у ньому.
Санта-

1
Це from file import *не такimport * from file
добрий

1
Чи потрібен файл у конкретному директорі? Я намагаюся його повним шляхом, і це не працює.
CodyBugstein

імпорт directory.subdirectory.file
Сет

14

Ви можете просто скористатися заявою про імпорт:

from file import *

Так, наприклад, якби у вас був названий файл, my_script.pyви завантажили б його так:

from my_script import *


3

Відкрийте командний рядок у папці, в яку ви маєте імпортувати файли. коли ви введете "python", термінал python буде відкритий. Тепер ви можете використовувати

імпорту сценарію_ ім'я
Примітка: розширення .py не використовуватиметься під час імпорту.
Як я можу відкрити вікно cmd у визначеному місці?


0

Якщо ваша pathзмінна середовище містить Python (наприклад, C:\Python27\), ви можете запустити файл py просто з командного рядка Windows (cmd). Як тут.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.