1113 Прежде всего взгляните на этот ответ, читая файл построчно. Как читать большой файл построчно в Python
Правильный, полностью Pythonic способ чтения файла заключается в следующем:
with open(...) as f:
for line in f:
# Do something with 'line'
Из моего Понимание того, что вы пытаетесь сделать, это проверить, есть ли имя пользователя, введенное пользователем, в списке и затем #Do something
.
Первая проблема заключается в том, что usernab не получает никакого значения из usernab = print(line.strip())
, поскольку print()
ничего не возвращает. Вместо этого вам следует присвоить usernab
строку и затем напечатать ее:
usernab = line.strip()
print(usernab)
Вторая проблема заключается в том, что вы пытаетесь использовать x
witch - строку для итерации в диапазоне целых чисел. Вы в основном говорите: «Для каждой строки в диапазоне от 0 до 5, сделайте что-нибудь». Вы должны использовать другую переменную.
Кроме того, if (x) in (usernab)
проверит, содержит ли usernab x. В зависимости от того, что вы хотите сделать, вы можете изменить это.
Этот код компилируется под Python 3.7. Он добавит 1
к i
пять раз, каждый раз, когда x
находится в строке.
f = open("users.txt", "r")
x = str(input("Please enter a valid username: "))
i=0
for line in f:
usernab = line.strip()
print(usernab)
if (x) in (usernab):
for j in range(0,5):
i+=1
print(i)
Необходимо отправить слушателя (или клиент или сервер, он не имеет значения), некоторый сигнал прекратить прислушиваться к большему количеству данных. Вот очень простой пример:
ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(sock.getInputStream()));
while (true) {
Object obj = ois.readObject();
if (obj instanceof String) {
if ((String)obj).equalsIgnoreCase("quit")) {
break;
}
}
// handle object
}
ois.close();
sock.close();
Вы не должны, вероятно, ожидать для чтения () из сокета, в то время как другой конец закрывает его. В хорошем сетевом протоколе клиент может сообщить серверу, что он не имеет ничего больше для записи (возможно, путем отправки ему специального близкого символа) прежде, чем закрыть соединение.