如何读取变量内容而不是文件路径?
How to read variable contents instead of file path?
我有一个 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
expects a filename and not a file object, hence why you cannot use io.StringIO
with it. However you can use boto3.client.upload_fileobj
,它精确地处理文件对象,例如
import io
import boto3
s3 = boto3.client('s3')
f = io.StringIO('1,2,3\n4,5,6')
s3.upload_fileobj(f, ...)
我有一个 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
expects a filename and not a file object, hence why you cannot use io.StringIO
with it. However you can use boto3.client.upload_fileobj
,它精确地处理文件对象,例如
import io
import boto3
s3 = boto3.client('s3')
f = io.StringIO('1,2,3\n4,5,6')
s3.upload_fileobj(f, ...)