分类 python 下的文章

import os


# 读取文件夹内文件名称的函数
def get_all_filenames(folder_path):
    filenames = []
    for filename in os.listdir(folder_path):
        if os.path.isfile(os.path.join(folder_path, filename)):
            filenames.append(filename)
    return filenames


folder_path = "name"  # 同目录的文件夹名
txt_name = "whiteRaf.txt"  # 同目录输出文件名

# 引用的目录,根据实际自行填写
raf_a = '<a href="/downloads/mp3/MIYAZAKI/'
# html格式相关信息
raf_b = '" style="text-decoration: none;font-family: Arial, Helvetica, sans-serif;">'
# 结尾和换行
raf_c = '</a>\n'

# 调用函数
all_filenames = get_all_filenames(folder_path)

# 写入文件
with open(txt_name, 'w') as file_object:
    for filename in all_filenames:
        file_object.write(raf_a + filename + raf_b + filename + raf_c)

资料

官方文档

Django安装

安装

$pip install django==4.2.*

查看已安装的软件

$pip list

Django创建项目

$django_admin startproject myweb

用作TXT格式的吉它谱等和弦谱的级数转换
通过列表对应的方式实现

# 原文件和弦
m_list = ['C', 'C#', 'D',  'D#', 'E',  'F',
          'F#', 'G',  'G#', 'A',  'A#', 'B',
          'C', 'C#', 'D',  'D#', 'E',  'F',
          'F#', 'G',  'G#', 'A',  'A#', 'B']

# 过渡使用的和弦标记
c_list = ['#1#', '#1+#', '#2#', '#2+#',  '#3#', '#4#',
          '#4+#', '#5#', '#5+#',  '#6#', '#6+#', '#7#',
          '#1#', '#1+#', '#2#', '#2+#',  '#3#', '#4#',
          '#4+#', '#5#', '#5+#',  '#6#', '#6+#', '#7#']

# 升降调对应列表
u_list = ['C#', 'D#', 'F#',  'G#',  'A#']
d_list = ['Db', 'Eb', 'Gb',  'Ab',  'Bb']

# 双升音阶的调整
a_list = ['C##', 'D##', 'F##',  'G##',  'A##']
b_list = ['D', 'E', 'G',  'A',  'B']

# 保留用作自动处理时使用
# filename = 'test.txt'
# new_filename = 'newtest.txt'
# add_num = int(input('请输入升几个半音:'))

print('本程序通过通过升半音的方法实现,降半音时请输入升(12-n)')
filename = input('请输入要转换的文件名(同目录):')
new_filename = input('请输入转换后的文件名(同目录):')
add_num = int(input('请输入升几个半音:'))

# 使用replace()方法进行替换
with open(filename, 'r') as file_object:
    musicfile = file_object.read()
    for i in range(12):
        musicfile = musicfile.replace(m_list[i], c_list[i+add_num])
    for i in range(12):
        musicfile = musicfile.replace(c_list[i], m_list[i])
    for i in range(5):
        musicfile = musicfile.replace(a_list[i],b_list[i])
    det = input('目前是升调表示方法,是否调整为降调表示方法?(Y/N):')
    det = det.upper()
    if det == 'Y':
        for i in range(5):
            musicfile = musicfile.replace(u_list[i], d_list[i])


with open(new_filename, 'w') as file_object:
    file_object.write(f'本谱已经过和弦级数的转换,升高{add_num}个半音\n')
    if det == 'Y':
        file_object.write('本谱已由升调表示方法调整为降调表示方法\n')
    file_object.write('\n\n')
    file_object.write(musicfile)

安装库

pip install comtypes

引用

pip install comtypes

完整代码

import os
from comtypes import client

def word_to_pdf(input_path, output_path):
    # 创建 Word 应用对象
    word_app = client.CreateObject('Word.Application')
    
    # 启动 Word 应用程序(可见性设置为 False)
    word_app.Visible = False

    try:
        # 打开 Word 文档
        doc = word_app.Documents.Open(input_path)
        
        # 将 Word 文档保存为 PDF 格式
        doc.SaveAs(output_path, FileFormat=17)  # 文件格式为 PDF
        
        # 关闭 Word 文档
        doc.Close()

        print(f"已将 {input_path} 转换为 {output_path}")
    except Exception as e:
        print(f"转换失败: {e}")
    finally:
        # 退出 Word 应用程序
        word_app.Quit()

def batch_word_to_pdf(input_folder, output_folder):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    for filename in os.listdir(input_folder):
        if filename.endswith(".docx") or filename.endswith(".doc"):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, filename.rsplit(".", 1)[0] + ".pdf")
            word_to_pdf(input_path, output_path)

if __name__ == '__main__':
    input_folder = "D:/word2pdf/input_folder"  # 输入 Word 文档所在文件夹路径
    output_folder = "D:/word2pdf/output_folder"  # 输出 PDF 文件的保存路径

    batch_word_to_pdf(input_folder, output_folder)

最好放在根目录下,不容易出错

启动jupyter notebook

终端>>jupter notebook

jupyter notebook 代码补全

安装nbextensions
终端>>

pip install jupyter_contrib_nbextensions -i https://pypi.mirrors.ustc.edu.cn/simple
jupyter contrib nbextension install --user

勾选Hinterland选项

绘制记录曲线

%matplotlib inline
import matplotlib.pyplot as plt
x = [1,2,3,4,5,6,7]
y = [10,30,20,25,35,35,40]
plt.plot(x,y)
plt.axhline(linewidth=2, color="k")   #加粗X轴
plt.axvline(linewidth=2, color="k")   #加速Y轴
plt.grid(color= '0.8')
plt.show()

绘制y=x2

%matplotlib inline
import matplotlib.pyplot as plt
x = list(range(-5,6))
y = []
for i in x:
    y.append(i ** 2)
plt.plot(x,y)
plt.grid(color='0.8')
plt.show()

绘制y=x3,密集步数

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-1.0,1.01,0.01)
y = x ** 3
plt.plot(x,y)
plt.grid(color= '0.8')
plt.show()

绘制圆

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
th = np.arange(0,360) #定义角度区间
r = 1 #默认半径为1
x = r * np.cos(np.radians(th)) + 0 #x坐标序列 radians()角度转弧度函数
y = r * np.sin(np.radians(th)) + 0 #y坐标序列 默认圆心为0,0
plt.plot(x,y)
plt.axis('equal') #设置x,y轴等比例
plt.grid(color='0.8')
plt.axhline(linewidth=2, color="k")
plt.axvline(linewidth=2, color="k")
plt.show()

反三角函数以及弧度转角度

>>> rad = np.arctan2(1,1)
>>> th = np.degrees(rad)
>>> th
45.0