Python FTPLib загрузка не работает - PullRequest
0 голосов
/ 31 октября 2019

Я пишу программу чата с базой текстовых файлов для регистрации и чатов. Однако Python не хочет загружать текстовый файл базы данных. Как бы это исправить?

Я перепробовал множество исправлений, включая добавление / удаление префикса b, попытки кодировать строки, изменение текста в двоичный режим, пассивный режим, а также изменение режима доступа. Ничто не исправило это.

import hashlib, os, ftplib
db = open("db.txt","wt")
server = ftplib.FTP("my","ftp","server",21)
server.cwd("PyChat")
server.retrlines("RETR db.txt", db.write) #downloads database from server, not many users
db.close()
db = open("db.txt", "rt")
u = str(input("Password \n"))
h = str(input("Name \n"))
db.close()
with open(b"db.txt", "a+t") as dbs:
    dbs.write("\n" + hashlib.shake_256(u.encode('utf-8')).hexdigest(384) + " , " + hashlib.shake_256(h.encode('utf-8')).hexdigest(384) +  "\n")
db = open(b"db.txt", "rt")
server.set_pasv(0)
server.storlines(b"STOR db.txt", db)

Во-первых, это TypeError: a bytes-like object is required, not 'str', потому что мне каким-то образом удалось сломать его еще больше, когда я пытался это исправить самостоятельно.

Во-вторых, файл действительно будет загружен, и все будет работать нормально, но файл не изменился на моем FTP-сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...