Очень новый для Python и программирования в целом, так извиняйтесь, если я пропущу что-нибудь прямое.Проблема поиска файла в списке, который будет переписан
Я пытаюсь выполнить итерацию по каталогу и открыть прилагаемые .txt-файлы и изменить их с помощью нового содержимого.
import os
def rootdir(x):
for paths, dirs, files in os.walk(x):
for filename in files:
f=open(filename, 'r')
lines=f.read()
f.close()
for line in lines:
f=open(filename, 'w')
newline='rewritten content here'
f.write(newline)
f.close()
return x
rootdir("/Users/russellculver/documents/testfolder")`
дает мне: IOError: [Errno 2] Нет такого файла или каталога: 'TestText1.rtf'
EDIT: Я хотел уточнить есть файл с именем 'TestText1.rtf' в папку, указанную в аргументе функции. Это первый из трех текстовых файлов.
Когда я пытаюсь двигаться, когда файл закрыт/открыт, как показано ниже:
import os
def rootdir(x):
for paths, dirs, files in os.walk(x):
for filename in files:
f=open(filename, 'r+')
lines=f.read()
for line in lines:
newline='rewritten content here'
f.write(newline)
f.close()
return x
rootdir("/Users/russellculver/documents/testfolder")
Это дает мне: ValueError: операции ввода/вывода в закрытом файле
Спасибо за любые мысли заранее ,
@mescalinum Итак, я внесла поправки в то, что у меня основано на любой помощи (спасибо!), Но он все еще не в состоянии ввести текст «новая строка» в любом из TXT-файлов в указанном папка.
import os
x = raw_input("Enter the directory here: ")
def rootdir(x):
for dirpaths, dirnames, files in os.walk(x):
for filename in files:
try:
with open(os.dirpaths.join(filename, 'w')) as f:
f.write("newline")
return x
except:
print "There are no files in the directory or the files cannot be opened!"
return x
Ваш 'f.close()' находится в неправильном месте. – Rishav
Эй, спасибо, за какой вариант? Первый или второй? Это неправильно? Или просто просто не в том месте? – Ruckol1
Я работаю над этим. Момент. – Rishav