1

私は 2 つの Python スクリプトを持っています。1 つはデータを処理し、もう 1 つは処理されたデータを反映した HTML レポートを作成します。

test1.py:

def test(self):
    for i in data:
        if data is this:
            data[1] = something
        if data is that:
            data[1] = something
        else:
            data[1] = something else

test2.py:

OutFile = open("C:/path/../result.html", "w")

print "Content-type:text/html\r\n\r\"
# want to print data[1] value here

data[1]from からtest1.pytoに値を渡す最良の方法は何test2.pyですか? に引数を使用して渡すことはできますtest2.pyか?

4

2 に答える 2

3

関数から返すことができます:

class MyClass():
    data = some_data
    def test(self):
        for i in data:
            if data is this:
                data[1] = something
            if data is that:
                data[1] = something
            else:
                data[1] = something else
            return data

test2.py、それをつかんでどこかに置きます。

from test1 import MyClass
my_instance = MyClass()
data = my_instance.test()
print(data[1])

代替案 1

に変数として入れますMyClass

class MyClass():
    data = some_data
    def test(self):
        for i in self.data:
            if self.data is this:
                self.data[1] = something
            if data is that:
                self.data[1] = something
            else:
                self.data[1] = something else

そして では、test2.pyそれを のプロパティとして取りますmy_instance:

from test1 import MyClass
my_instance = MyClass()
my_instance.test()
print(my_instance.data[1])

代替案 2

両方のスクリプトを個別に実行したい場合はtest1、データを からアクセスできる場所に置くことができますtest2。たとえば、ファイルでは次のようになります。

class MyClass():
        data = some_data
        def test(self):
            for i in data:
                if data is this:
                    data[1] = something
                if data is that:
                    data[1] = something
                else:
                    data[1] = something else
            with open('data.txt', 'w') as f:
                f.writelines(data)

これで、2 番目のスクリプトから簡単に取得できます。

with open('data.txt') as f:
    data = f.readlines()
print (data[1])

これを達成するのはそれほど難しくありません。

お役に立てれば!

于 2013-11-04T22:09:52.877 に答える