2016-10-27 3 views
0

У меня есть .txt-файл, который вытягивает список пользователей сценарием powershell, который я не могу редактировать. Когда список пользователей создается он возвращается как таковой:Удаление строки набора из каждой строки во время чтения файла

"Scott Smith","user" 
"Tom Smith","user" 
"Paul Smith","user" 

Я пытался сделать замену

s = set() 

with open('OldUserList.txt') as f: 
    for line in f: 
     s.add(line) 


list2 = open('NewUserList.txt', 'r+') 

for ii in list2: 
    if ii not in s: 
     list2.write(ii.strip("\n")+" ***\n") 
     replace('","user"','') 

Что я Спинка:

Traceback (most recent call last): 
    File "C:\Python32\readlist.py", line 13, in <module> 
    replace('","user"","') 
NameError: name 'replace' is not defined 

Мне было интересно, что предполагается использовать для .replace? Я видел, что это использовалось несколько раз в руководствах и в примерах, которые я видел на этом сайте. Любые советы по этому или лучшим способам написания этого будут оценены. Благодарю.

+0

'«Скотт Смит»" пользователь "' был это опечатка и предположим, что '„Скотт Смит“,„пользователь“ '? – MooingRawr

+0

@MooingRawr да, извините, что это была моя ошибка – Aoxx

ответ

3

Метод string.replace(old, new), поэтому для вашего случая это было бы:

for ii in list2: 
    if ii not in s: 
     list2.write((ii.strip("\n")+" ***\n").replace('","user"', '')) 
+0

это не работает, поскольку он помечает всех пользователей в NewUserList как нового пользователя, даже если они находятся в старом списке, они отмечены как если бы они не были:/ – Aoxx

+0

Итак, вы хотите удалить "," пользователь "из строки? – Andy

+0

да, я думаю, что мне нужно сделать это в отдельной функции, которая будет выполняться до того, как произойдет сравнение, чтобы она не фальсифицировалась. – Aoxx

Смежные вопросы