Моя цель - создать программу-питон, которая получит пользовательский ввод, чтобы открыть конкретный файл, скопировать содержимое этого файла в новый файл (названный пользователем) а затем удалите все пробелы и цифры из нового файла.Проблема с созданием нового файла и последующим манипулированием его содержимым
Я успешно копирую содержимое моего файла последовательности в только что созданный файл newsequence. Во втором цикле «for» все разваливается, когда я пытаюсь манипулировать файлом «newsequence».
Я столкнулся с ошибкой, когда он не мог прочитать «newsequence» (возможно, потому, что мне казалось, что я хочу, чтобы он читал переменную, а не содержимое файла?). Я думал, что преобразование файла в строку может помочь (хотя я признаю, что я думал, что он должен работать без этого), поэтому в строке 7 я преобразовал «newsequence» в строку.
Это, по крайней мере, запустило программу для завершения, не поднимая ошибку «io.UsupportedOperation: not readable», но это все еще не так. Мой выходной файл идентичен исходному файлу «sequence», за исключением того, что он содержит дополнительную строку в конце, которая просто читает «8». Откуда это «8», и какие изменения мне нужно внести в мой код, чтобы заставить его делать то, что я хочу?
Я очень новичок в программировании, поэтому я, вероятно, делаю серию глупых ошибок. Спасибо за любую помощь, которую вы можете мне дать.
sequence = open(input("Choose sequence file: "))
name = input('Enter name of new text file, without .txt: ') + '.txt'
with open(name, 'a') as newsequence:
for line in sequence:
newsequence.write(line)
for line in str(newsequence):
result = ''.join(i for i in line if i.isdigit())
result = result.replace(" ","")
newsequence.write(result)
sequence.close()
newsequence.close()
, когда вы используете 'с open (name, 'a') как newsequence:' тогда вам не нужно 'newsequence.close()', потому что 'with' закроет этот файл. – furas
'open (..., 'a')' означает, что вы открываете 'append', а не' read'. – furas
вы не можете читать и писать файл в одно и то же время - использовать указатель файла, чтобы rembember, где он перестает читать или писать, - вы должны перенести этот указатель на файл, начинающий читать снова (или вам нужно снова открыть файл). Лучше делать everithing в одном цикле - 'для строки в последовательности:' – furas