Что вы хотите сделать, это составить список и добавить к нему b.
my_vals = []
for x in range(len(df['Days'])):
if df['Days'][x]>0 and df['Days'][x]<=30:
b = df['Days'][x]
my_vals.append(b)
my_vals
В вашем коде вы меняете b
при каждой итерации, и поэтому в нем хранятся только самые последние значения. В будущем, когда вы пытаетесь сохранить несколько значений, делайте это в другом типе данных.
Реализовано в витая :
from twisted.internet.protocol import Factory, Protocol
from twisted.internet import reactor
class SendContent(Protocol):
def connectionMade(self):
self.transport.write(self.factory.text)
self.transport.loseConnection()
class SendContentFactory(Factory):
protocol = SendContent
def __init__(self, text=None):
if text is None:
text = """Hello, how are you my friend? Feeling fine? Good!"""
self.text = text
reactor.listenTCP(50000, SendContentFactory())
reactor.run()
Тестирование:
$ telnet localhost 50000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Hello, how are you my friend? Feeling fine? Good!
Connection closed by foreign host.
Серьезно, когда дело доходит до асинхронной сети, витая - это путь. Он обрабатывает несколько соединений в однопоточном однопроцессном подходе.
You need some form of asynchronous socket IO. Have a look at this explanation, which discusses the concept in low-level socket terms, and the related examples which are implemented in Python. That should point you in the right direction.
For a really easy win implement you solution using SocketServer & the SocketServer.ThreadingMixIn
have a look a this echo server example it looks quite similar to what you're doing anyway: http://www.oreillynet.com/onlamp/blog/2007/12/pymotw_socketserver.html
If you're up for a bit of a conceptual challenge, I'd look into using twisted.
Your case should be trivial to implement as a part of twisted. http://twistedmatrix.com/projects/core/documentation/howto/servers.html
Если вы хотите сделать это на чистом питоне (без витая), вам нужно сделать некоторые потоки. Если вы не видели это раньше, проверьте: http://heather.cs.ucdavis.edu/~matloff/Python/PyThreads.pdf
на странице 5/6 - это пример, который очень актуален;)
Сначала купите книги Комера по программированию TCP / IP .
В этих книгах Comer предоставит несколько альтернативных алгоритмов для серверов. Существует два стандартных подхода.
Поток-на-запрос.
Процесс-на-запрос.
Вы должны выбрать один из этих двух и реализовать его.
В потоке на каждый сеанс telnet имеет место. отдельный поток в вашем общем приложении.
В process-per вы разбиваете каждый сеанс telnet на отдельный подпроцесс.
Вы обнаружите, что процесс-на-запрос намного, намного проще обрабатывается в Python, и как правило, это обеспечивает более эффективное использование вашей системы.
Поток на запрос хорош для вещей, которые приходят и уходят быстро (например, HTTP-запросы). В Telnet есть длительные сеансы, в которых стоимость запуска подпроцесса не влияет на производительность.
Поздно для ответа, но с единственными ответами Twisted или Thread (ой), я хотел добавить ответ для MiniBoa.
http://code.google.com/p/miniboa/
Twisted великолепен, но это довольно крупный зверь, который, возможно, не лучшее введение в однопоточное асинхронное программирование Telnet. MiniBoa - это легкая асинхронная однопоточная реализация Python Telnet, изначально разработанная для грязи, что идеально подходит для вопроса OP.