如何读取变量内容而不是文件路径?

问题描述

我有一个 Python 函数 [1],它需要指向它必须处理的文件文件路径作为参数。但是,我有一个包含相应文件内容的字符串变量。我不想创建一个文件只是为了使用上述函数读取它然后删除文件

有没有办法传递一个变量而不是指向具有相同内容文件文件路径?

问题示例:

data = '1,2,3\n4,5,6'

# this is the intended function use:
process_data('data.csv')

# this is how I would like to use it 
# so that I don't have to create a file
process_data(data)

[1] 具体来说,该函数boto3.client.upload_file(file_path,bucket,target_path)

我已经阅读了一些使用 io.StringIO方法,但不知何故我很不走运让它们运行。

解决方法

boto3.client.upload_file 需要文件名而不是文件对象,因此您不能将 io.StringIO 与它一起使用。但是,您可以使用 boto3.client.upload_fileobj,它精确地处理文件对象,eg.

import io
import boto3

s3 = boto3.client('s3')

f = io.StringIO('1,2,3\n4,5,6')
s3.upload_fileobj(f,...)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...