Python - Копирование данных из одного файла в другой файл

1

Я пытаюсь скопировать содержимое одного файла в другой.

Сценарий успешно копирует содержимое в файл, но когда я пытаюсь запустить команду READ с выходным файлом для печати вывода, он пуст.

from sys import argv
script, inputFile, outputFile = argv
inFile = open(inputFile)
inData = inFile.read()
outFile = open(outputFile, 'w+')
outFile.write(inData)
print("The new data is:\n",outFile.read())
inFile.close()
outFile.close()
Теги:

3 ответа

1
Лучший ответ

Вы забыли вернуться в начало outFile после написания. Поэтому вставка outFile.seek(0) должна исправить ваши проблемы.

  • 0
    Большое спасибо
2

После операции write указатель файла находится в конце файла, поэтому вам нужно сбросить его до начала. Кроме того, буферы файловой системы IO, возможно, не были очищены в этот момент (вы еще не закрыли файл)...

Простое решение: закрыть outFile и снова открыть его для чтения.

В качестве примечания: всегда убедитесь, что вы закрываете свои файлы независимо от того, что происходит, особенно при написании, иначе вы можете получить поврежденные данные. Самый простой способ - это оператор with:

with open(...) as infile, (...) as outfile:
    outfile.write(infile.read())

# at this point both files have been automagically closed
  • 0
    Спасибо, оооочень много бруно дестхьюлиерс ..
  • 0
    seek - это гораздо более элегантное решение, которое закрывается и открывается, работает намного быстрее
0

После того, как вы закончите писать, указатель файла находится в конце файла, поэтому никаких данных нет. Переместите указатель на начало файла.

  • 0
    Большое спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню