У меня есть простой скрипт на python, который просто берет имя файла и выплевывает измененную версию этого файла.Я хотел бы перенаправить стандартный вывод (используя '>' из командной строки), чтобы я мог использовать свой сценарий для перезаписи файла с моими изменениями, например, python myScript.py test.txt > test.txt
Когда я это делаю, получаю тест.txt не содержит никакого текста из исходного test.txt - только дополнения, сделанные myScript.py.Однако, если я не перенаправляю стандартный вывод, тогда изменения получаются корректно.
Чтобы быть более конкретным, вот пример:
myScript.py:
#!/usr/bin/python
import sys
fileName = sys.argv[1]
sys.stderr.write('opening ' + fileName + '\n')
fileHandle = file(fileName)
currFile = fileHandle.read()
fileHandle.close()
sys.stdout.write('MODIFYING\n\n' + currFile + '\n\nMODIFIED!\n')
test.txt
Hello World
Результат python myScript.py test.txt > test.txt
:
MODIFYING
MODIFIED!