首页 > 解决方案 > 在 Python 中删除 CSV 单元格的一部分

问题描述

我最近偶然发现了一项使用一些 CSV 文件的任务,这些文件至少可以说是组织得很差,一个单元格包含应该是多个单独的列。我想在 Python 脚本中使用这些数据,但想知道是否可以删除行的一部分(在某个点之后全部删除),然后将其写入字典。

虽然我无法显示 CSV 的确切内容,但它看起来像这样:

useful. useless useless useless useless

我知道这很可能需要正则表达式或endswith语句,但是对 CSV 文件执行所有这些操作超出了我的范围。此外, CSV 上有用后写的句号也应删除,这不是错字。

标签: pythoncsv

解决方案


如果您知道要拆分的字符,则可以使用以下简单方法:

good_data = bad_data.split(".")[0] 
good_data = good_data.strip() # remove excess whitespace at start and end

此方法将始终有效。split将返回一个总是至少有 1 个条目(完整字符串)的元组。使用index可能会引发异常。

您还可以在必要时使用split(".", N).

https://docs.python.org/2/library/stdtypes.html#str.split

>>> "good.bad.ugly".split(".", 1)
['good', 'bad.ugly']
>>> "nothing bad".split(".")
['nothing bad']
>>> stuff = "useful useless"
>>> stuff = stuff[:stuff.index(".")]
ValueError: substring not found

推荐阅读