Tôi đang cố gắng để sao chép tập tin bên trong một kịch bản Python sử dụng đoạn mã sau:file sao chép với Python trong môi trường Windows
inf,outf = open(ifn,"r"), open(ofn,"w")
outf.write(inf.read())
inf.close()
outf.close()
này hoạt động hoàn hảo unedr OSX (và hương vị UNIX khác tôi nghi ngờ) nhưng thất bại trong môi trường Windows. Về cơ bản, các cuộc gọi read() trả về byte ít hơn nhiều so với kích thước tập tin thực tế (đó là khoảng 10KB chiều dài) do đó gây ra việc cắt truncate các tập tin đầu ra. Mô tả phương thức read() nói rằng "Nếu đối số kích thước là âm hoặc bỏ qua, hãy đọc tất cả dữ liệu cho đến khi đạt được EOF" vì vậy tôi mong đợi mã trên làm việc trong bất kỳ môi trường nào, có Python che chắn mã của tôi Hệ điều hành quirks.
Vì vậy, điểm là gì? Bây giờ, tôi đã sử dụng shutil.copyfile, phù hợp với nhu cầu của tôi và nó hoạt động. Tôi đang sử dụng Python 2.6.5
Cảm ơn tất cả.
Nếu đó là tệp nhị phân, bạn nên mở chúng bằng "rb" và "wb" vì điều này tạo sự khác biệt trên Windows. Tôi không chắc chắn nếu điều này có thể gây ra vấn đề này. –
Tôi không hiểu ý anh là gì, Wayne. Tôi đã chấp nhận câu trả lời, câu trả lời của Nathon cụ thể hơn. –