You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中按数值顺序打开文件的方法求助

我来帮你搞定这个文件名排序的问题!你遇到的是典型的字典序排序和数值排序的差异——系统默认按字符逐个比较,所以100K.txt会排在19K.txt前面,因为第一个字符1相同,第二个0比9小。下面分几种场景给你解决方案:

一、文件管理器直接调整(无需编程)

Windows 文件资源管理器

  • 打开存放文件的文件夹
  • 右键空白处 → 选择「排序方式」→ 点击「更多」
  • 在弹出的列表里找到「数字排序」并勾选,之后再按「名称」排序,文件就会按数值升序排列了
  • 快捷方式:部分版本的Windows中,直接右键排序方式里就能看到「数字排序」选项,直接选中即可

macOS Finder

  • 打开目标文件夹,按Cmd + J调出「查看显示选项」
  • 在「排序」下拉菜单选择「名称」,然后勾选「使用数字排序」选项
  • 设置完成后,Finder就会识别文件名里的数字大小,按你想要的顺序排列了

Linux 主流文件管理器(Nautilus、Dolphin等)

  • 打开文件夹后,点击顶部的「名称」排序按钮,右键按钮或进入设置(比如Nautilus的「编辑→首选项→视图」)
  • 找到「自然排序」或「数值排序」选项并开启,就能实现按数字大小排序

二、编程/脚本自动化处理

如果需要批量操作或用代码按这个顺序处理文件,这里给几个常用示例:

Python 实现

import os

# 获取当前目录下所有符合格式的txt文件
target_files = [f for f in os.listdir(".") if f.endswith(".txt") and "K.txt" in f]

# 定义排序规则:提取文件名中的数字并转为整数
def get_file_number(file_name):
    # 从文件名中剥离出数字部分,比如"19K.txt" → "19"
    num_str = ''.join([c for c in file_name if c.isdigit()])
    return int(num_str)

# 按数值升序排序文件列表
sorted_files = sorted(target_files, key=get_file_number)

# 遍历处理排序后的文件(这里以打印为例,替换成你的打开逻辑即可)
for file in sorted_files:
    print(f"正在处理:{file}")
    # 示例:打开文件(Windows用os.startfile,macOS用subprocess.run(["open", file]))
    # os.startfile(file)

Bash 终端脚本(Linux/macOS)

用sort -V(版本排序,会自动识别数字数值)来实现:

# 按数值升序列出文件
ls -v *.txt

# 批量按顺序打开文件(macOS用open,Linux用xdg-open)
for file in $(ls -v *.txt); do
    echo "打开文件:$file"
    open "$file"  # Linux替换为xdg-open "$file"
done

内容的提问来源于stack exchange,提问作者Shubhadip Chakraborty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:23:08