Я запускаю команду '1003 *' терминала 'strings' для файла и сохраняю результат, представляющий собой последовательность читаемых строк, в переменной. Результаты также записываются в текстовый файл. Затем мне нужно загрузить результаты в базу данных. Проблема в том, что результат часто содержит символы 'и' в непредсказуемом порядке. Это приводит к ошибке SQL. Я пытался создать string.replace с пустой строкой и \ escape. Я также пытался "" " или '' 'вокруг строки, но ни одна из них не работает, так как я не знаю, какой тип кавычки будет первым. Мы ценим любые предложения.
fileName = filePath.rsplit('/', 1)[1]
stream = os.popen('strings ' + filePath)
output = stream.readlines()
file = open(filePath + "/" + fileName + "_StringsResults.txt", "w+")
for o in output:
file.write(str(o))
results += str(o)
file.close()
dsn = 'postgresql://###########@localhost:########/test?sslmode=disable'
conn = psycopg2.connect(dsn)
with conn.cursor() as cur:
cur.execute(
"UPSERT INTO test (testID) VALUES ('%s')" % (results))
conn.commit()