python - 如何将新列添加到包含特定值的行?
问题描述
我是 Python 编码的新手。我需要在包含特定单词的行中添加新列。我有 csv 文件如下:
one two three four five
two one five three four
five two four three five
我需要在第二列中包含“两个”的所有行中添加“2”。
像这样:
one two three four five 2
two one five three four
five two four three five 2
提前致谢
解决方案
这是一个非常简单的解析,所以我不会打扰 csv 模块。只需打开文件并遍历每一行。在每一行上执行 a split
,这会将行拆分为使用空格作为分隔符的列表(默认)。接下来的几行应该很明显:那些将“two”作为第二列(拆分列表中的第二项))的那些被补充,那些没有。
读取文件并修改行后,将其写入新文件。
newlines = []
with open("thecsv.txt") as f:
for l in f:
if l.split()[1] == "two":
newlines.append(l.strip() + " 2\n")
else:
newlines.append(l)
with open("newcsv.txt", 'w') as f:
for l in newlines:
f.write(l)
推荐阅读
- javascript - 使用 Mousetrap.js 聚焦输入字段-但输入字段也将热键粘贴为值?
- linux - 如何将所有现有文件从远程 sftp 服务器传输到本地目录并创建一个包含这些文件列表的 .txt 文件?
- sql - Oracle根据一列将行转换为动态列
- postgresql - 将本地 postgres 数据库复制到 AWS RDS 的最佳方法是什么?
- adobe-indesign - 通过脚本为标准 InDesign 面板提供了哪些方法和属性以供使用?
- excel-formula - 获取 Excel 公式中使用的单元格数
- hpc - Snakemake:将多个作业聚集在一起
- database - 如何自动将收到的 gmail pdf 文件保存到数据库中?
- python - 如何修复'int对象不可迭代'
- c - scanf_s 读取字符我在做什么错?