【问题标题】:How to read variable contents instead of file path?如何读取变量内容而不是文件路径?
【发布时间】:2021-07-21 19:11:23
【问题描述】:

我有一个 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 的方法,但不知何故我很不幸让它们运行起来。

【问题讨论】:

    标签: python file variables path stringio


    【解决方案1】:

    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, ...)
    

    【讨论】:

    • 哦,博伊。那太容易了,我猜。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2020-12-08
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多