我将数据存储在.txt文件中......
Subset 1 1 350.000 0.096
Subset 1 2 351.000 0.095
Subset 1 3 352.000 0.095
Subset 1 4 353.000 0.097
Subset 1 5 354.000 0.096
Subset 1 6 355.000 0.095
Subset 1 7 356.000 0.097
Subset 1 8 357.000 0.094
Subset 1 9 358.000 0.091
Subset 1 10 359.000 0.091
Subset 1 11 360.000 0.091
Subset 1 12 361.000 0.092
Subset 1 13 362.000 0.091
Subset 1 14 363.000 0.089
Subset 1 15 364.000 0.089
Subset 1 16 365.000 0.090
我想只使用值350, 351...
和0.096, 0.95,...
。因此,首先我需要删除所有Subset 1
和数字1,2,3,4...
,然后将350, 351...
和0.096, 0.95,...
存储在两个不同的列表中,以便绘制它们。
我试图做的是:
import io
# Load the txt file
text_file = io.open("/home/stagiaire/Bureau/01.Dark Skin.txt","r",
encoding = "utf-16")
# Read the lines and then strip
lines = text_file.readlines()
li = lines.strip(',')
# Delete "susbset1" by replacing it with nothing...
nkia = lines.replace("Subset 1","")
但它不起作用...有关我如何做的任何建议?谢谢。
答案 0 :(得分:3)
您正在尝试将字符串修改应用于列表。我可以修复你的代码,但让我们采取更优雅(和单行)的方法:
我会阅读这条线&拆分它(没有参数使其像awk
一样,它将字段分隔符视为“一个或多个空格或表格”),只保留最后两个字段并将它们转换为浮点数,所有这些都在嵌套列表中理解:
coords = [[float(x) for x in l.split()[-2:]] for l in text_file]
给了我这对情侣名单:
[[350.0, 0.096], [351.0, 0.095], [352.0, 0.095], [353.0, 0.097], [354.0, 0.096], [355.0, 0.095], [356.0, 0.097], [357.0, 0.094], [358.0, 0.091], [359.0, 0.091], [360.0, 0.091], [361.0, 0.092], [362.0, 0.091], [363.0, 0.089], [364.0, 0.089], [365.0, 0.09]]
如果确实需要2个列表,那么,也可以使用列表推导来提取它们:
[c[0] for c in coords]
和[c[1] for c in coords]
答案 1 :(得分:3)
这是一种方法:
import io
# Load the txt file
text_file = io.open("/home/stagiaire/Bureau/01.Dark Skin.txt","r",
encoding = "utf-16")
# Output lists
list1 = []
list2 = []
# Read the lines and then make lists
for line in text_file.readlines():
segments = line.split()
list1.append(segments[-1])
list2.append(segments[-2])