Python 3遍历文本文件批量生成指定格式内容求助
解决Python遍历别名文件生成指定命令文本的问题
嘿,作为Python新手碰到这种小需求太正常啦,我来给你捋清楚怎么实现!
你想要的是读取alias.txt里每行的别名,然后生成对应格式的命令行内容对吧?直接用下面的代码就能搞定:
输出到标准输出的版本
#!/bin/python3 # 读取alias.txt里的所有别名,自动跳过空行 with open('alias.txt', 'r') as alias_file: # 用列表推导式处理每行,去掉换行符和多余空格,过滤空行 aliases = [line.strip() for line in alias_file if line.strip()] # 遍历每个别名,生成对应两行内容 for alias in aliases: print(f"ma {alias}") print(f"mda -a {alias} mail-relay {alias}@ant.domain.com")
输出到新文件的版本(如果需要写入文件而不是打印)
#!/bin/python3 # 同时打开输入文件和输出文件,自动处理文件关闭 with open('alias.txt', 'r') as alias_file, open('output_commands.txt', 'w') as output_file: aliases = [line.strip() for line in alias_file if line.strip()] for alias in aliases: # 写入内容时记得加换行符\n output_file.write(f"ma {alias}\n") output_file.write(f"mda -a {alias} mail-relay {alias}@ant.domain.com\n")
代码里的几个关键点给你拆解下:
- 用
with open的方式操作文件,不用手动写close(),安全又省心,还能避免忘记关闭文件导致的问题 - 列表推导式处理每行内容,既能去掉换行符和前后空格,还能自动跳过文件里的空行,避免生成无效的空命令
- 用Python的f-string格式化字符串,比你原来设想的
replace方法更直观,直接把别名嵌入到字符串对应位置就行
这样运行代码后,就能得到你想要的那种逐个别名对应的命令内容啦!
内容的提问来源于stack exchange,提问作者eekfonky
相关产品推荐
相关产品推荐

