分类: Python

Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。

Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。

像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License) 协议。

官方宣布,2020 年 1 月 1 日, 停止 Python 2 的更新。

Python 2.7 被确定为最后一个 Python 2.x 版本。

  • UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd0 in position 292: invalid continuation byte

    UnicodeDecodeError 错误通常发生在尝试用错误的编码方式解码文件内容时。在你的例子中,错误信息提示 'utf-8' codec can't decode byte 0xd0 in position 292: invalid continuation byte,这意味着在读取文件时,Python 试图以 UTF-8 编码来解码文件,但在文件的第 293 个字节(因为计数通常从 0 开始,所以位置 292 是第 293 个字节)遇到了一个无法用 UTF-8 解码的字节(0xd0)。

    这通常意味着文件可能不是以 UTF-8 编码保存的,或者文件可能在某个地方损坏了。要解决这个问题,你可以尝试以下步骤:

    1.确定文件的正确编码
    如果你知道文件的确切编码,你可以在打开文件时指定正确的编码。例如,如果文件是 GBK 编码(在中文 Windows 系统中很常见),你应该这样打开文件:

    with open('filenames.txt', 'r', encoding='gbk') as file:  
        lines = file.readlines()

    如果你不确定文件的编码,可以尝试使用 chardet 这样的库来检测编码:

     

    import chardet  
    
    # 读取文件的一部分来检测编码  
    with open('filenames.txt', 'rb') as file:  
        rawdata = file.read(1000)  # 只读取文件的前1000个字节  
        result = chardet.detect(rawdata)  
        encoding = result['encoding']  
    
    # 使用检测到的编码来读取文件  
    with open('filenames.txt', 'r', encoding=encoding) as file:  
        lines = file.readlines()

    2.忽略或替换错误
    如果你不关心无法解码的字符,你可以在打开文件时忽略或替换这些错误:

    with open('filenames.txt', 'r', encoding='utf-8', errors='ignore') as file:  
        lines = file.readlines()

    或者:

    with open('filenames.txt', 'r', encoding='utf-8', errors='replace') as file:  
        lines = file.readlines()

    errors='ignore' 会忽略那些无法解码的字符,而 errors='replace' 会用一个占位符替换它们(通常是问号 ?)。

    3.保存文件为 UTF-8 编码
    如果可能,你可以尝试将文件另存为 UTF-8 编码,然后使用 UTF-8 来读取它。大多数文本编辑器和IDE都允许你改变文件的编码。

    记住,在尝试这些解决方案时,最好先备份你的原始文件,以防在尝试不同的编码或错误处理方式时造成数据丢失。

  • python 校准win系统时间与网络北京时间一致

    要校准Windows系统时间与网络北京时间一致,你可以使用Python的datetimerequests库来实现。以下是一个简单的示例代码:

     import datetime  
     import requests  
       
     def get_beijing_time():  
         # 发送HTTP请求获取北京时间  
         response = requests.get('https://time.api.qq.com/time/ip')  
         data = response.json()  
         return datetime.datetime.fromtimestamp(data['time']).replace(tzinfo=datetime.timezone(datetime.timedelta(hours=8)))  
       
     def set_system_time(new_time):  
         # 调用Windows API函数SetSystemTime来设置系统时间  
         import ctypes  
         ctypes.windll.kernel32.SetSystemTime(new_time)  
       
     # 获取北京时间  
     beijing_time = get_beijing_time()  
     print("北京时间:", beijing_time)  
       
     # 设置系统时间为北京时间  
     set_system_time(beijing_time)  
     print("系统时间已设置为北京时间")

    这段代码首先通过get_beijing_time函数发送HTTP请求获取北京时间,然后使用set_system_time函数将系统时间设置为获取到的北京时间。请注意,这段代码需要在管理员权限下运行,因为需要调用Windows API函数SetSystemTime来设置系统时间。

    Python 设置系统时间,代码如下:

    适用于windows系统

     import os
     import datetime
     
     #设定日期
     _date = datetime.datetime.strptime("2019/05/25","%Y/%m/%d")
     #设定时间为 0点30分
     _time = '00.30'
     #设定时间
     os.system('time {}'.format(_time))
     os.system('date {}'.format(_date))
  • python 修改win系统时间为2099年

    在Windows操作系统中,修改系统时间通常需要管理员权限。Python本身没有提供修改系统时间的功能,但你可以通过调用Windows的time命令来实现这个目标。以下是一个使用Python修改Windows系统时间的例子:

     import os  
     import time  
       
     def set_system_time(new_time):  
         # Define the command to set the system time  
         command = r"cmd /c net time \\\\%1 /set /syncfromdns"  
       
         # The new time is in UTC format. Convert it to Windows format.  
         new_time = time.strftime("%Y-%m-%d %H:%M:%S", new_time)  
       
         # The command is run in a shell. Define the shell in which to run the command.  
         shell = os.popen("for /f %p in ('net get /domain') do @echo %p", "r")  
       
         # Run the command to set the system time.  
         os.popen(shell.read() + command % new_time)  
       
         # Close the shell.  
         shell.close()  
       
     # Set the system time to 2099-01-01 00:00:00 UTC.  
     set_system_time((2099, 1, 1, 0, 0, 0))

    请注意,这段代码需要管理员权限才能运行。另外,这个方法可能存在一些风险,因为改变系统时间可能会影响到依赖时间的系统功能和应用程序。因此,除非你完全明白这样做的后果,否则不建议随意修改系统时间。

  • python 查看windows电脑WIFI密码

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    import os
    os.system("netsh wlan show profiles > wifi_list.txt")
    with open("wifi_list.txt") as f:
        data = f.readlines()[10:]
        #print(data)
        num = 1
        
        for i in data:
            print(str(num)+"."+i.replace('所有用户配置文件 :',''))
            num += 1
        select = input("请输入WIFI序号:")
        # print(data[int(select)-1].replace('所有用户配置文件 :',''))
        wifiname = data[int(select)-1].replace('所有用户配置文件 :','').replace("   ","").replace("  ","")
        #print(type(wifiname))
        #print(wifiname)
        str = 'netsh wlan show profiles name="{}" key=clear'.format(wifiname).replace('\n','')
        #print(str)
        os.system(str)
        print("WIFI密码请查看【关键内容】!!!")

     

  • pygame播放音乐

    # -*- coding: utf-8 -*-
    '''
    该代码在pyhon idle里面运行可以正常播放音乐。
    如果想要在cmd窗口里正常播放,你需要让程序不要马上执行结束,比如加一个input等待输入的命令,让cmd命令处于运行时状态,这样就可以是一直在播放中了,
    简单来说就是cmd命令运行太快了,还没播放音乐呢,指令就直接让执行完了,程序都结束了。所以没有播放音乐出来。
    input("此内容为适应cmd窗口命令:正在播放中,回车键结束程序")
    '''
    import pygame# 导入该工具库
    
    pygame.mixer.init()# 音频混合器准备。因为要播放音乐文件,音乐文件属于音频文件,所有要把播放器拿出来准备放音乐
    f="5.wav"# 加载音乐文件
    pygame.mixer.music.load(f) # 加载音乐
    pygame.mixer.music.set_volume(0.5)# 播放音乐的音量,值区间:0到1之间的小数,比如50%的音量就是0.5
    print(pygame.mixer.music.get_busy())# 打印一下音乐是否在播放,在播放就是True,不在播放就是False
    pygame.mixer.music.play()# 播放音乐
    print(pygame.mixer.music.get_busy())# 打印一下音乐是否在播放,在播放就是True,不在播放就是False
    input("此内容为适应cmd窗口命令:正在播放中,回车键结束程序")

    建议使用ogg格式或者wav格式的文件。不过在运行时使用mp3格式的文件也可以,但是一旦打包出去还是建议使用ogg格式或者wav格式的文件(https://blog.csdn.net/weixin_43403605/article/details/106131654)

  • pygame简单使用

    import pygame
    
    # 初始设置
    pygame.init()# 初始化pygame
    screen = pygame.display.set_mode((800,900))# Pygame窗口
    pygame.display.set_caption("pygame绘制图形")# 标题
    keep_going = True
    RED = (255,0,0)# 红色,使用RGB颜色
    radius = 20# 半径
    
    # 游戏循环
    while keep_going:
    	for event in pygame.event.get():# 遍历事件
    		if event.type == pygame.QUIT:# 退出事件
    			keep_going = False
    	pygame.draw.circle(screen,RED,(200,300),radius)# 在Surface上绘制图片
    	pygame.display.update()# 刷新屏幕
    
    # 退出程序
    pygame.quit()

     

  • python把图片横向拼接成一张图片

    由AI讯飞星火大模型辅助:

    import os
    from PIL import Image
    
    def get_image_files(folder_path):
        image_files = []
        for file in os.listdir(folder_path):
            if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
                image_files.append(os.path.join(folder_path, file))
        return image_files
    
    def sort_image_files(image_files):
        return sorted(image_files, key=lambda x: int(''.join(filter(str.isdigit, x.split('/')[-1].split('.')[0]))))
    
    def merge_images(image_files, output_path):
        images = [Image.open(x) for x in image_files]
        widths, heights = zip(*(i.size for i in images))
    
        total_width = sum(widths)
        max_height = max(heights)
    
        new_image = Image.new('RGB', (total_width, max_height))
    
        x_offset = 0
        for image in images:
            # 纵向拼接图片
            new_image.paste(image, (x_offset, 0))
            x_offset += image.size[0]
    
        new_image.save(output_path)
    
    if __name__ == '__main__':
        folder_path = '1' #这里是图片文件夹的位置(路径)-相对路径即可
        output_path = 'output/image.png'#这里是输出文件加的位置(路径)-相对路径即可
    
        image_files = get_image_files(folder_path)
        sorted_image_files = sort_image_files(image_files)
        merge_images(sorted_image_files, output_path)
    
  • python tkinter 导入菜单模块

    在 Python 中,使用 Tkinter 库创建 GUI 应用程序时,可以使用 Menu 类来创建菜单。Menu 类提供了一些方法和属性,可以用于创建菜单和菜单项,并将它们添加到应用程序中。

    以下是一个简单的示例,演示如何在 Tkinter 应用程序中创建菜单:

    import tkinter as tk  
      
    def do_something():  
        print("Menu item clicked!")  
      
    # 创建主窗口  
    root = tk.Tk()  
      
    # 创建菜单  
    menu = tk.Menu(root)  
    root.config(menu=menu)  
      
    # 创建菜单项  
    file_menu = tk.Menu(menu)  
    menu.add_cascade(label="File", menu=file_menu)  
    file_menu.add_command(label="Open", command=do_something)  
    file_menu.add_command(label="Save", command=do_something)  
    file_menu.add_separator()  
    file_menu.add_command(label="Exit", command=root.quit)  
      
    # 创建另一个菜单项  
    edit_menu = tk.Menu(menu)  
    menu.add_cascade(label="Edit", menu=edit_menu)  
    edit_menu.add_command(label="Cut", command=do_something)  
    edit_menu.add_command(label="Copy", command=do_something)  
    edit_menu.add_command(label="Paste", command=do_something)  
      
    # 运行应用程序  
    root.mainloop()

    在这个示例中,我们首先创建了一个主窗口 root。然后,我们创建了一个 Menu 对象,并将其添加到主窗口中。接下来,我们创建了两个子菜单 file_menu 和 edit_menu,并将它们添加到主菜单中。最后,我们将一些菜单项添加到子菜单中,并将它们与一些回调函数关联起来。在运行应用程序时,用户可以单击菜单项来触发相应的回调函数。

  • python tkinter点击一个按钮,新增一个界面

    在 Tkinter 中,你可以使用 Toplevel 窗口来创建新的界面。以下是一个简单的例子,当你点击按钮时,会打开一个新的窗口:

    import tkinter as tk  
      
    def new_window():  
        new_window = tk.Toplevel(root)  
        new_window.title("新窗口")  
        label = tk.Label(new_window, text="这是一个新窗口")  
        label.pack()  
      
    root = tk.Tk()  
    button = tk.Button(root, text="打开新窗口", command=new_window)  
    button.pack()  
      
    root.mainloop()

    在这个例子中,new_window 函数会创建一个新的 Toplevel 窗口,并在其中添加一个标签。当用户点击按钮时,new_window 函数会被调用,打开新的窗口。

  • python tkinter中的Frame组件如何使用

    在Python的Tkinter库中,Frame是一个用于组织其他控件的容器。它通常用于为其他控件提供结构和布局。

    以下是如何在Python的Tkinter中使用Frame的基本示例:

    import tkinter as tk  
      
    root = tk.Tk()  
      
    # 创建一个Frame  
    frame = tk.Frame(root)  
    frame.pack()  
      
    # 在Frame中添加一个Label  
    label = tk.Label(frame, text="Hello, World!")  
    label.pack()  
      
    root.mainloop()

    在这个例子中,我们首先导入tkinter库,然后创建一个Tk对象,它是一个包含其他所有控件的根窗口。然后我们创建一个Frame对象,并将其打包到根窗口中。然后我们在Frame中创建一个Label对象,并将其打包到Frame中。最后,我们通过调用mainloop方法启动Tkinter事件循环。

    注意,你可以将任何其他的Tkinter控件放在Frame中,不仅仅是Label。你可以根据需要自由组合和布局这些控件。