我使用Python 2.7和Django 1.7。如何生成一個文件,而無需將其保存到Python中的磁盤?
我有一個方法在我的管理界面中生成某種類型的csv文件。
def generate_csv(args):
...
#some code that generates a dictionary to be written as csv
....
# this creates a directory and returns its filepath
dirname = create_csv_dir('stock')
csvpath = os.path.join(dirname, 'mycsv_file.csv')
fieldnames = [#some field names]
# this function creates the csv file in the directory shown by the csvpath
newcsv(data, csvheader, csvpath, fieldnames)
# this automatically starts a download from that directory
return HttpResponseRedirect('/media/csv/stock/%s' % csvfile)
總而言之,我創建了一個CSV文件,保存在某個地方它在磁盤上,然後通過它的網址給用戶下載。
我在想如果所有這些都可以在不寫入光盤的情況下完成。我搜索了一下,也許內容處置附件可能會幫助我,但我在文檔中迷失了一下。
無論如何,如果有一個更簡單的方法來做到這一點,我很想知道。
查找到'StringIO' –
看起來這是非常類似的問題在這裏,因爲它幾乎相同事情,只是不同的有效載荷:http://stackoverflow.com/questions/908258/generating-file-to-download-with-django – Ragora