繁体   English   中英

如何在 Streamlit 中使用用户输入的文本作为文件名?

[英]How can I use user entered text as a filename in Streamlit?

我试图让用户输入文件名并将该文本用作必须上传到 GCS 存储桶的文件的文件名。 这就是我的代码的样子:

user_input = str(st.text_input("Name your file: "))

sweep_string = "_exponential_sweep_.wav"
inv_filter_string = "_inverse_filter_.wav"
ir_string = "_impulse_response_.wav"

if user_input:

    wavfile.write(os.path.join(audio_files_path,
                               user_input + sweep_string), sample_rate, sweep)
    wavfile.write(os.path.join(audio_files_path,
                               user_input + inv_filter_string), sample_rate, inverse)
    wavfile.write(os.path.join(audio_files_path,
                               user_input + ir_string), sample_rate, ir)

我试图在 wavfile.write 之前将两个字符串添加到一个变量中,但没有任何变化。 如果我从 wavefile.write 中删除 user_input ,它可以工作,但我需要用户能够命名文件。

在写入之前为路径分配文件名

user_input = str(st.text_input("Name your file: "))


def write_wav_file(file_name, rate, data):
    """Write wav file base on input"""
    save_file_path = os.path.join(audio_files_path, file_name)
    
    wavfile.write(save_file_path, rate, data)
    


if user_input:
    sweep_string = user_input + "_exponential_sweep_.wav"
    inv_filter_string = user_input + "_inverse_filter_.wav"
    ir_string = user_input + "_impulse_response_.wav"
    
    write_wav_file(file_name=sweep_string, rate=sample_rate, data=sweep)
    
    write_wav_file(file_name=inv_filter_string, rate=sample_rate, data=inverse)
    
    write_wav_file(file_name=inv_filter_string, rate=sample_rate, data=ir)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM