从excel读取内容并下载数据、生成对应的文件

import wget
import os
import pandas as pd

def main():
    xlsx_file = "yourfilename.xlsx"
    wav_scp = "wav.scp"
    text_raw = "text.raw"
    # 读取整个表格,获取到的返回值类型为DataFrame,后续的操作均是基于DataFrame的数据操作方法进行
    print("reading xlsx file...")
    df = pd.read_excel(xlsx_file)
    print("read xlsx finished.")

    # 创建输出文件夹和文件
    wav_output_dir="wav_slice"
    if not os.path.exists(wav_output_dir):
        os.makedirs(wav_output_dir)
        print("创建路径:{}".format(wav_output_dir))
    if os.path.exists(wav_scp):
        os.remove(wav_scp)
        print("删除文件:{}".format(wav_scp))
    if os.path.exists(text_raw):
        os.remove(text_raw)
        print("删除文件:{}".format(text_raw))
    # 读取transfer_label_content列,获取前100行
    suffix=os.getcwd()
    print("当前路径:{}".format(suffix))
    sub_lines = 100
    data = df.loc[:sub_lines,['transfer_label_content','voice']]
    print("总共有{}条数据".format(len(data.values)))
    text_raw_content = []
    wav_scp_content = []
    with open(text_raw, 'w', encoding='utf-8') as f1:
        with open(wav_scp, 'w', encoding='utf-8') as f2:

            for text, url in data.values:
                print("text:{}, url:{}".format(text, url))
                # 根据voice下载音频文件
                wget.download(url,out=wav_output_dir)
                # 根据transfer_label_content的内容和voice的文件名字创建wav.scp,text.raw
                utt = url.split("/")[-1].split(".")[0]
                wav_path = os.path.join(suffix + "/" + wav_output_dir, url.split("/")[-1])
                f1.write(utt + ' ' + text + '\n')
                f2.write(utt + ' ' + wav_path + '\n')

if __name__ == "__main__":
    main()
  1. 读取excel的各种操作参考:https://blog.csdn.net/L_Jane_H/article/details/125586000
    写的很清楚详细
  2. 下载数据直接用wget.download()就可以了

猜你喜欢

转载自blog.csdn.net/weixin_43870390/article/details/131250201