Python数字格式化代码求助:将10位数字按指定规则分段输出
Python数字格式化自动化工具实现方案
没问题,我来帮你搞定这个数字格式化的小工具,完全可以替代Excel手动操作,大幅提升效率!
实现思路
核心就是对每个10位数字按固定位置切片,再拼接成你需要的格式,同时处理可能的无效数据(比如非10位、非数字的内容),避免出错。
完整代码(文件批量处理版)
这个版本适合你有大量数字保存在文本文件里的场景,直接读取文件、批量处理并输出到新文件:
def format_numbers(input_file_path, output_file_path): try: with open(input_file_path, 'r', encoding='utf-8') as infile: with open(output_file_path, 'w', encoding='utf-8') as outfile: for line in infile: # 去除每行的换行符、空格等空白字符 num = line.strip() # 校验是否为10位数字 if len(num) == 10 and num.isdigit(): # 按规则分段拼接:前3位+空格+中间3位+空格+后3位+空格+最后1位+/ formatted_num = f"{num[:3]} {num[3:6]} {num[6:9]} {num[9:]}/" outfile.write(formatted_num + '\n') else: print(f"⚠️ 警告:行内容 '{num}' 不符合10位数字要求,已跳过") print(f"✅ 格式化完成!结果已保存到 {output_file_path}") except FileNotFoundError: print(f"❌ 错误:未找到输入文件 {input_file_path},请检查路径是否正确") except Exception as e: print(f"❌ 发生未知错误:{str(e)}") # 这里替换成你的实际文件路径 if __name__ == "__main__": input_file = "原始数字.txt" # 你的原始数字文件,每行一个10位数字 output_file = "格式化后数字.txt" format_numbers(input_file, output_file)
代码解释
- 使用
with open语句自动管理文件的打开和关闭,不用手动担心资源泄漏 line.strip():去除每行末尾的换行符和可能的空格,保证数字的纯净性- 校验逻辑:先检查长度是否为10,再确认是纯数字,过滤无效数据
- 字符串切片:
num[:3]取前3位,num[3:6]取第4-6位,num[6:9]取第7-9位,num[9:]取最后1位,用f-string轻松拼接成目标格式 - 异常处理:针对文件找不到、其他未知错误给出明确提示,方便排查问题
快速测试版(直接输入数字)
如果你只是想快速测试少量数字,可以用这个版本:
# 把你的数字放到这个列表里 test_numbers = ["1234567891", "9654321878", "9283876326"] for num in test_numbers: if len(num) == 10 and num.isdigit(): formatted = f"{num[:3]} {num[3:6]} {num[6:9]} {num[9:]}/" print(formatted) else: print(f"无效数字:{num}")
使用步骤
- 把所有原始10位数字保存到一个文本文件(比如
原始数字.txt),每行一个数字 - 修改代码中的
input_file和output_file为你的实际文件路径 - 运行Python代码,格式化后的结果就会出现在输出文件里,每行一个符合要求的格式
内容的提问来源于stack exchange,提问作者crazzssy




