Python如何在多个脚本中使用字符串

时间:2019-05-17 10:18:31

标签: python string

我正在树莓派上运行python脚本,该脚本将键盘输入读取为字符串,并将通过TCP发送该字符串。我编写了两个脚本,一个脚本读取输入,另一个可以在需要时发送字符串。如何使用一个字符串并将其用于两个脚本中以进行阅读和书写?

我使用了文本文档。仅因为我想要的sd卡才能在两个脚本之间建立连接

阅读部分:

#loops for Barcode_Data
def Create_File():
    file = open("Barcode_data.txt", "w")
    file.write(" // ")
    file.close()
    empty = ''

def Barcode_Read():
    Barcode_Data= input("Input: ",)
    print(Barcode_Data)
    file = open("Barcode_data.txt", "a")   
    file.write(Barcode_Data)
    file.write(" // ")
    file.close()


#Loop that will only run once   
Create_File()
#Loop that will run continuesly
while True:
    Barcode_Read()

TCP服务器:

#TCP server
def TCP_Connect(socket):
    socket.listen()
    conn, addr = socket.accept()
    with conn:
        data = conn.recv(1024)

    if data == b'Barcode_Data':
        tcp_file = open("Barcode_data.txt", "r")
        Barcode_Data = tcp_file.read()
        tcp_file.close()
        conn.sendall(Barcode_Data.encode('utf-8'))

    elif data == b'Clear Barcode_Data':
        tcp_file = open("Barcode_data.txt", "w")
        tcp_file.write(" // ")
        tcp_file.close()

#TCP Socket setup
HOST = ''  # Standard loopback interface address (localhost)
PORT = 1025 # Port to listen on (non-privileged ports are > 1023)
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))

#Loop that wil run continuesly
    while True:
        TCP_Connect(s)

1 个答案:

答案 0 :(得分:-1)

您可以按原样使用此问题中的代码:Interprocess communication in Python

服务器进程:

from multiprocessing.connection import Listener

address = ('localhost', 6000)     # family is deduced to be 'AF_INET'
listener = Listener(address, authkey='secret password')
conn = listener.accept()
print 'connection accepted from', listener.last_accepted
while True:
    msg = conn.recv()
    # do something with msg
    if msg == 'close':
        conn.close()
        break
listener.close()

客户流程:

from multiprocessing.connection import Client

address = ('localhost', 6000)
conn = Client(address, authkey='secret password')
conn.send('close')
# can also send arbitrary objects:
# conn.send(['a', 2.5, None, int, sum])
conn.close()

可在此处找到文档:https://docs.python.org/3.7/library/multiprocessing.html#multiprocessing-listeners-clients