33

これは非常に簡単だと思いますが、正しく動作させることができませんでした。メインのpythonスクリプトで別のpythonスクリプトを呼び出し、元のスクリプトから呼び出したスクリプトに変数を渡す必要があります

単純化した例として、私の最初のスクリプトは次のとおりです。

first.py
x = 5
import second

私の2番目のスクリプトは、

second.py 
print x

xを出力することを期待しますが、取得します

NameError: name 'x' is not defined

インポートがこれを達成する正しい方法であるかどうかはわかりませんが、誰かが簡単な方法でそれを明らかにすることができれば、それは素晴らしいことです!

ありがとう、


編集

コメントを読んだ後、私は自分の質問を拡張すると思いました。Aswin Murugesh の回答は、私が抱えていたインポートの問題を修正しますが、この方法でリストにアイテムを渡すことができないように見えるため、ソリューションには望ましい結果がありません。

first.py には、次のように処理するリストがあります

for insert, (list) in enumerate(list, start =1):
    'call second.py passing current list item'

リスト内の各項目を 2 番目の python ファイルに渡してさらに処理 (Web スクレイピング) したかったのですが、first.py でこれを実行したくありませんでした。プログラム。これがより意味のあるものになることを願っています。

これまでのコメントに感謝します。

4

5 に答える 5

12

次のスクリプトを使用します。

first.py:

x=5

秒.py

import first
print first.x

これにより、x 値が出力されます。常にインポートされたスクリプト データは、次のようにスクリプト名で参照する必要があります。first.x

于 2013-04-16T22:26:53.680 に答える
6

名前空間の汚染を避けるために、必要な変数を個別にインポートします:from __main__ import xなど。そうしないと、気付かなかった名前の競合が発生します。

于 2018-04-26T13:42:00.293 に答える