Files
docs/开发文档/python/代码片段.md
2026-01-14 11:27:47 +08:00

3.5 KiB
Raw Blame History

postgresql数据库连接

import psycopg2 as pg
def db_conn(sql,query=None):
    try:
        conn = pg.connect(database='video_data',user='videos',password='Vi2023**',host='124.71.39.185',port='9900')
        cursor = conn.cursor()
        cursor.execute(sql)
        conn.commit()
        # res = cursor.fetchall()
        if sql[:6]=="SELECT" and query == 0:
            # 返回所有查询结果
            return cursor.fetchall()
        if sql[:6] == "SELECT" and query == 1:
            # 返回1条查询结果
            return cursor.fetchone()
        else:
            return True
    except pg.DatabaseError as e:
        # conn.rollback()
        print(f'DB_ERROR: {e}')
        return False
    finally:
        if conn:
            conn.close()
sql='select * from table_name;'
db_conn(sql)

随机字符串生成

# 秘钥生成器
import random
str1 = '0123456789'
str2 = 'abcdefghijklmnopqrstuvwxyz'
str3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
str4 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def auto_key(number):
'''number:生成的字符串位数'''
    # 设置随机数种子
    random.seed(random.randint(1,1000))
    str=''
    for i in range(number):
        str+=random.choice(str4)
    print(str)
    return str
auto_key(24)

列出主机的音频设备信息

import pyaudio

p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
    d_info=p.get_device_info_by_index(i)
    print(d_info)

音频录制

import pyaudio
import os
from pydub import AudioSegment

buffer = 1024
bits = pyaudio.paInt16
channel = 2
hz = 48000
sour_path = "D:\\3-option\\music\\"
record_second = 10

# 实例化PyAudio对象
p = pyaudio.PyAudio()
# 使用立体声混音(录制扬声器的声音)
# stream = p.open(rate=hz,channels=channel,format=bits,input=True,frames_per_buffer=buffer,input_device_index=11)
# 选择录音设备,这里我们选择麦克风
stream = p.open(format=bits,
                 channels=channel,
                 rate=hz,
                 input=True,
                 frames_per_buffer=buffer,
                 input_device_index=1)

# 从麦克风直接录制FLAC格式音频
audio = AudioSegment.empty()

def record_audio():
    for i in range(0, int(hz * record_second / buffer)):
        data = stream.read(buffer)
        audio += AudioSegment(data, sample_width=p.get_sample_size(bits), frame_rate=hz, channels=channel)
    return audio

audio = record_audio()
audio.export("f:\\music\\test.flac", format="flac")

# 关闭流和PyAudio对象
stream.stop_stream()
stream.close()
p.terminate()

音频格式转换

import os
from pydub import AudioSegment  
def convert(file_name,file_format):
    AudioSegment.from_file(audio_file_path)
    audio.export(path2+i.replace(file_name.spilt('.')[1], file_format), format=file_format)
def batch_convert(**kwargs):
    '''source_path: 源文件路径destination_path: 目标文件路径, file_format: 要转换的文件格式'''
    source_path = kwargs['source_path']
    destination_path = kwargs['destination_path']
    file_format = kwargs['file_format']
    for i in os.listdir(source_path):
        try:
            convert(file_name=i,file_format=file_format)
        except:
            print(i,'转换失败!')
source_path = "D:\\10-百果园-工作资料\\01-常用音乐\\"
destination_path="D:\\10-百果园-工作资料\\new\\"
file_format = 'flac'
batch_convert(source_path=source_path,destination_path=destination_path,file_format=file_format)