在程序的后面部分使用变量(python)

时间:2018-11-24 17:45:17

标签: python amazon-web-services

我正在尝试将两个单独的代码连接到一个程序中。我需要从第一部分到第二部分放入一个字符串。

第一:

import boto3

if __name__ == "__main__":

    bucket='BUCKET-NAME'
    collectionId='COLLECTION-ID'
    fileName='input.jpg'
    threshold = 70
    maxFaces=1

    client=boto3.client('rekognition')


    response=client.search_faces_by_image(CollectionId=collectionId,
                                Image={'S3Object':{'Bucket':bucket,'Name':fileName}},
                                FaceMatchThreshold=threshold,
                                MaxFaces=maxFaces)


    faceMatches=response['FaceMatches']
    for match in faceMatches:
            print (match['Face']['FaceId'])

第二:

import boto3
from boto3.dynamodb.conditions import Key, Attr

dynamodb = boto3.resource('dynamodb')

table = dynamodb.Table('faces')

response = table.scan(
    FilterExpression=Attr('faceid').eq('FaceId')
)
items = response['Items']
print(items)

我需要将第一个代码中print (match['Face']['FaceId'])所示的ID放入第二个代码中的FaceId

我试图定义一个变量并将其值放入其中,然后稍后再获取它,但我做不到正确的

1 个答案:

答案 0 :(得分:2)

通常,您将第一个代码块编写为具有执行某些工作单元并returns结果的函数的库/模块。然后,第二个代码块将import第一个代码块并调用该函数。

# lib.py
def SomeFunction(inputs):
  output = doSomething(inputs)
  return output

# main.py
import lib
data = ...
result = lib.SomeFunction(data)
moreWork(result)

如果您想要两个独立运行并共享数据的程序,则需要Inter-process communication。您可以通过以下方式使进程彼此共享信息:文件系统中的文件/ FIFO;网络插座;共享内存;和STDIO(可能还有更多)。但是,IPC肯定比同步库调用还要工作。