【发布时间】:2017-06-02 14:11:33
【问题描述】:
我正在为学校制作一个项目。我有两个脚本。一个接受目标 ip 发送字符串,另一个接受来自该 ip 的数据。一个脚本在特定时间打开另一个脚本,以使其更加用户友好。但是,它不是打开正确的文件,而是打开发送文件,即带有 os.startfile() 的文件。以下是脚本:
#!python3
import socket
import sys
import os
print ("MAGENTA Chat Host v1 - send")
target = input("Target IP:")
UDP_IP = target
os.startfile("ChatRcv.py")
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print ("Socket successfully created")
except socket.error as err:
print ("Socket creation failed with error %s" %(err))
while True:
message = input ("Message:")
if message == "exit":
s.close()
sys.exit()
else:
s.sendto(bytes(message, "utf-8"),(UDP_IP,5000))
下一个
#!python3
import socket
import sys
from ChatSend import UDP_IP
print ("MAGENTA Chat Host v1 - receive")
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print ("Socket successfully created")
except socket.error as err:
print ("Socket creation failed with error %s" %(err))
s.bind((UDP_IP,5000))
while True:
data, addr = s.recvfrom(1024)
print ("Received message:", data)
我做错了什么?请帮忙!
EDIT-这与导入行有关,当我将其注释掉时,它工作得很好。 Getcwd() 给出正确的结果。使用 Python 3.5.2 和 Windows 32 位。需要帮助!
【问题讨论】:
-
你试过给绝对路径吗?
-
不太清楚你的意思。 ChatRcv 文件与此文件夹位于同一文件夹中,我已尝试写出整个路径。结果相同。
-
如果您确定了这两个脚本的名称(不仅仅是空白和“下一个”),将会有所帮助。
-
第一个是 ChatSend.py,第二个是 ChatRcv.py
-
如果您将
print(os.getcwd())行放在脚本中的某处,结果是否符合您的预期?
标签: python python-3.x file chat