![](/img/trans.png)
[英]open fp = io.BytesIO(fp.read()) AttributeError: 'str' object has no attribute 'read' in PIL/image.py
[英]fp.read not reading entire csv file
我要附加一個csv文件,並將其作為電子郵件發送。 我的其他代碼也使用了相同的代碼,但是在這種奇怪的情況下,它將截斷csv中的數據。 實際的csv為11 kb,但附件為8 kb。 實際文件有1400多行,其中附件只有1100行。
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())
,但是我找不到解決方案。
如果沒有原始文件,我們將無法重現您的問題,因此這只是一個猜測。
open('file_path')
的默認行為是以文本模式打開文件。 如果CSV包含EOF(文件結尾)字符,則fp.read()
方法在某些平台上可能不會返回整個文件。
嘗試以二進制模式打開CSV:
fp = open(path, 'rb')
[編輯]
我無法重現您的問題。
>>> mt = MIMEText(open('/tmp/test_file.csv').read())
>>> len(mt.as_string().split('\n'))
1165
這與原始文件加上MIME標頭的行數完全相同:
$ wc -l /tmp/test_file.csv
1160 /tmp/test_file.csv
請確定並仔細檢查重現該問題所需的最短程序,否則該問題可能會結束,因為盡管類似的問題可能在此處引起關注,但如當前所述,此問題不太可能對將來的讀者有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.