Я прикрепляю файл csv и отправляю его как электронное письмо. Тот же код работает для моих других кодов, но в этом странном случае он обрезает данные в csv. Фактическое значение csv равно 11 kb, но привязка составляет 8 kb. Фактический файл имеет 1400+ строк, где в качестве вложения только 1100 строк.fp.read не читает весь файл csv
fp = open(path)
msg1 = MIMEText(fp.read())
print os.path.getsize(path)
attachment = msg1.add_header('Content-Disposition', 'attachment', filename=name)
msg.attach(msg1)
print "Attached " + name
fp.close()
Проблема в этой строке кода - msg1 = MIMEText(fp.read())
, но я не в состоянии выяснить решения.
Предлагаем вам найти место _exact_, где csv-файл усекается и просматривает данные там, чтобы узнать, есть ли что-то необычное в нем. По умолчанию '_charset' для MIMEText является' us-ascii', поэтому любые символы вне этого диапазона могут быть причиной. – martineau
fp.read() должен читать все это, если что-то не останавливает его, поэтому, вероятно, MIMEText останавливает чтение. Могут быть всевозможные вещи. Попытайтесь разделить чтение и преобразование в MIMEText на отдельные строки и посмотреть, что произойдет. –
Независимо от того, какие данные находятся в файле, он усекает ровно с размером 8192, а фактический размер файла - 11523. Файл просто содержит в нем номера ячеек, другие данные или специальные символы. –