2 回答
TA贡献1828条经验 获得超3个赞
实际答案
好吧,请注意,您可以像对列表一样对字符串使用索引。即"this is a very long string but we only want the first 4 letters"[:4]给出"this". 如果我们现在新的点的索引,我们就可以得到你想要的东西。正是因为字符串有该index方法。所以总共你会做:
stuff = "useful. useless useless useless useless"
stuff = stuff[:stuff.index(".")]
现在的东西非常有用:)。如果我们正在讨论包含多行的文件,您可以为每一行执行此操作。将该行拆分,并将所有内容放入字典中。
data = {}
with open("./test.txt") as f:
for i, line in enumerate(f.read().split("\n")):
csv_line = line[:line.index(".")]
for j,col in enumerate(csv_line.split(",")):
data[(i,j)] = col
如何做到这一点
请注意,大多数人不想手动完成此操作。处理表格数据是一项常见任务,有一个名为 pandas 的库可以完成此任务。也许在深入了解 Python 之前先熟悉一下 Python 是个好主意pandas。我认为这是一个很好的起点。使用pandas你的任务看起来像这样
import pandas as pd
pd.read_csv("./test.txt", comment=".")
给你所谓的数据框。
TA贡献1784条经验 获得超8个赞
如果您知道要分割的角色,可以使用以下简单的方法:
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
添加回答
举报