Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中创建可以保存在内存中的CSV文件?_Python_Django_Excel_Csv - Fatal编程技术网

如何在python中创建可以保存在内存中的CSV文件?

如何在python中创建可以保存在内存中的CSV文件?,python,django,excel,csv,Python,Django,Excel,Csv,我在django中创建了一个CSV文件,当你到达一个url时,它会下载CSV文件,效果很好。唯一的一点是,我希望当文件被写入时,它会存储在内存中,而不是硬盘中。如何使用导入csv进行此操作 这适用于使用列表创建csv的django def data_feed_file(request): open_publications = self.get_publications(user_context) with open('facebook_feed.csv', 'wb') as

我在django中创建了一个CSV文件,当你到达一个url时,它会下载CSV文件,效果很好。唯一的一点是,我希望当文件被写入时,它会存储在内存中,而不是硬盘中。如何使用导入csv进行此操作

这适用于使用列表创建csv的django

def data_feed_file(request):
    open_publications = self.get_publications(user_context)

    with open('facebook_feed.csv', 'wb') as csvfile:
        filewriter = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
        filewriter.writerow(['id', 'title','description'])
        for op_pub in open_publications:
            filewriter.writerow([op_pub.id, op_pub.name, str(op_pub.description)])

    with open('facebook_feed.csv', 'rb') as myfile:
        response = HttpResponse(myfile, content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename=facebook_feed.csv'

    return response

您可以将csv文件保存在数据框中。像这样:

import pandas as pd

df = pd.read_csv('url_to_csv')

然后pandas库读取csv,您不必将其保存到驱动器。

您希望客户端将csv下载到内存中吗?
io.StringIO
?但是请注意,您必须将对该对象的引用存储在其中,而不要关闭它,否则gc将从内存中删除该对象。不,我希望客户端卸载该文件,但在将其保存在memeory而不是硬盘中时,您是否检查了csv文档?比如csv.reader?或者甚至Django自己的文档,其中包含了一个包含这个确切用例的文档。