簡體   English   中英

fp.read無法讀取整個csv文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM