python - 如何删除文件中不同样式的行(一切都是str格式)?
问题描述
我有一个使用 python 打开的文档:
with open('my_file.txt', 'r') as fin:
myfile = fin.readlines()
在 myfile 我有这样的行:
1HEJJ 1 3.904 5.512 1.259\n 2HEE CJJ 2 4.199 5.292 1.353\n 2LLO SJJ 3 4.367 5.234 1.445\n 3LLO JJ 4 4.041 4.969 1.220\n 6.50000 6.50000 6.50000\n 这是其他标题。\n 3\n 1GOO HSC 1 4.088 4.816 1.041\n 1DDD H 2 9.018 0.828 7.094\n 2DDD H 3 19.018 0.828 7.094\n
我需要保留的唯一行是这些:
1HEJJ 1 3.904 5.512 1.259\n 2HEE CJJ 2 4.199 5.292 1.353\n 2LLO SJJ 3 4.367 5.234 1.445\n 3LLO JJ 4 4.041 4.969 1.220\n 1GOO HSC 1 4.088 4.816 1.041\n 1DDD H 2 9.018 0.828 7.094\n 2DDD H 3 19.018 0.828 7.094\n
换句话说,具有来自信息的信息的行:
myfile[line][:44]
我必须保留。
其他行(较短的行)我必须删除。
关于如何做到这一点的任何想法?
解决方案
如果必须删除的行总是少于 44 个字符,而有效的行总是至少有 44 个(就像你说的那样),你可以这样做:
with open('input.txt', 'r') as infile:
with open('output.txt', 'w') as outfile:
for line in infile:
if len(line) >= 44:
outfile.write(line)
推荐阅读
- json - 如何使用局部变量调用 Json 数据?
- computer-vision - 了解pcl库的体素网格实现
- c - MacOS 上的 TensorFlow C 安装错误?:dyld 错误“未加载库:@rpath/libtensorflow.1.dylib”和“未找到符号:__cg_DGifCloseFile”
- python - .str.split() 是否有理由不适用于“$_”?
- javascript - 我把 filelist[i] 放到 ${},它变成了 undefined
- maven - 与 IntelliJ 捆绑的 Maven 不提供各种库的最新版本
- java - Socket.io 连接不适用于多个片段
- java - 当我使用 DaggerComponent.builder() 时,DaggerComponent 找不到符号方法 create()
- ios - 如何判断我的意图是否在快捷方式应用程序中运行?
- c# - 使用 EWS C# 检索未读电子邮件