Помогите разобраться с форматированием строки.

mike63

Новичок
Пользователь
Апр 18, 2020
2
0
1
Здравствуйте.
Дано:
2 файла "mail.txt" и "password.txt", нужно подставить их значение в строку и записать в третий файл.

Python:
a=open('mail.txt', 'r')
b=open('password.txt', 'r')
c=open('result.txt', 'w')
for line in a.readlines():
    email= line
    password=b.readline()
    print("INSERT INTO users (email, password) VALUES (\'"+email+"@domain.com\', ENCRYPT(\'"+password+"\'));  \n")
a.close()
b.close()
c.close()

на выходе получается

SQL:
INSERT INTO users (email, password) VALUES ('mail1@domain.com', ENCRYPT('111'));
INSERT INTO users (email, password) VALUES ('mail2@domain.com', ENCRYPT('222'));
INSERT INTO users (email, password) VALUES ('mail3@domain.com', ENCRYPT('333'));
INSERT INTO users (email, password) VALUES ('mail4@domain.com', ENCRYPT('444'));
INSERT INTO users (email, password) VALUES ('mail5@domain.com', ENCRYPT('555'));
INSERT INTO users (email, password) VALUES ('mail6@domain.com', ENCRYPT('666'));

Как избавиться от переносов строки ?

windows 10, pyton 3.8.2
 
Последнее редактирование модератором:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Можно с помощью метода strip() например:
Python:
a=open('mail.txt', 'r')
b=open('password.txt', 'r')
c=open('result.txt', 'w')
for line in a.readlines():
    email= line.strip()
    password=b.readline().strip()
    print("INSERT INTO users (email, password) VALUES (\'"+email+"@domain.com\', ENCRYPT(\'"+password+"\'));  \n")
a.close()
b.close()
c.close()
 
  • Мне нравится
Реакции: Vlad_SD и Student

mike63

Новичок
Пользователь
Апр 18, 2020
2
0
1
Можно с помощью метода strip() например:
Python:
a=open('mail.txt', 'r')
b=open('password.txt', 'r')
c=open('result.txt', 'w')
for line in a.readlines():
    email= line.strip()
    password=b.readline().strip()
    print("INSERT INTO users (email, password) VALUES (\'"+email+"@domain.com\', ENCRYPT(\'"+password+"\'));  \n")
a.close()
b.close()
c.close()
Спасибо, заработало как надо.
 

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Метод readlines() возвращает всю строку и в конце каждого пароля и емайла (любые данные) есть символ переноса строки \n. @mike63 правильно указал, что нужно использовать удаление символов по сторонам strip() он по дефолту удаляет пробелы и перенос строк.
 

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Используйте % или f-строки.

Python:
# Через %
print(f"INSERT INTO users (email, password) VALUES ('%s', ENCRYPT('%s'));\n" % (email, password))

# Через F-Строки.
print(f"INSERT INTO users (email, password) VALUES ('{email}', ENCRYPT('{password}'));\n")
 

Форум IT Специалистов