Python 多重提问

Python 多重提问,python,replace,Python,Replace,我从txt读取数据。第一行是行的标签,从第二行到最后是数据 Q1)如何跳过第1行 数据的格式是34,5,而不是34.5,因此我不能使用float() 我尝试str.replace()但没有成功 Q2)转换过程中是否有其他想法或建议 问题3)我通过QGIS使用python作为脚本。你知道如何中断脚本的“运行”吗 我现在写的代码是: import string X=[] Y=[] with open('D:/test_data/CLOUDS1.txt') as f: content = f

我从txt读取数据。第一行是行的标签,从第二行到最后是数据

Q1)如何跳过第1行

数据的格式是34,5,而不是34.5,因此我不能使用float() 我尝试str.replace()但没有成功

Q2)转换过程中是否有其他想法或建议

问题3)我通过QGIS使用python作为脚本。你知道如何中断脚本的“运行”吗

我现在写的代码是:

import string

X=[]
Y=[]
with open('D:/test_data/CLOUDS1.txt') as f:
    content = f.readlines()
    for line in content:
        row = line.split()
        X.append(row[0])
        Y.append(row[1])
for i in X,Y:
     print i
for j in Y:
    j.replace(',' , '.')
    print j
Q4)如何从X,Y创建点列表???

1

替换:

content = f.readlines()
for line in content:
与:

四,

问题1 如果要跳过第一行,必须从缓冲区中读取它。如果不需要列标题,请不要将结果存储到变量中:

with open('D:/test_data/CLOUDS1.txt') as f:
    f.readline() # Reads the first line but does not store the result
    content = f.readlines() # Reads the rest of the lines
问题2和4 假设您的文件内容与

x_coord y_coord
23,4 45,6
15,6 24,1
65,2 96,03
替换字符串的某些部分时,不会在位更改字符串。您必须将replace调用的结果分配给一个新变量并使用它:

points = []
for l in content:
    parts = l.split()
    x = float(parts[0].replace(',', '.'))
    y = float(parts[1].replace(',', '.'))
    points.append([x, y])
或者,以浓缩形式:

points = [[float(p.replace(',', '.')) for p in l.split()] for l in content]
无论哪种情况,结果都是一个二维列表(即列表列表列表),其中外部列表中的每个元素都是一个列表,其中有两个元素表示点的
x
y
坐标:

[[23.4, 45.6], [15.6, 24.1], [65.2, 96.03]]

将来,请在提问之前搜索问题,因为其中许多问题都是重复的。另外,请在每篇文章中坚持回答一两个问题。给出答案会更有帮助。写这篇文章意味着已经有了搜索和检查答案。。。。但你唯一的目的是发表评论来说明问题。在我发表上述评论之前,格拉茨在下面给出了答案。不幸的是,许多人的结果都是一样的。。。。。没有列表,没有替换…您能澄清与结果相关的问题吗?我不明白你的意思。当我运行我的程序时,我使用打印来查看replace做了什么,我得到了与我读到的34,23相同的结果。使用您的代码也会发生同样的情况。。。。逗号“,”仍然存在
points = [[float(p.replace(',', '.')) for p in l.split()] for l in content]
[[23.4, 45.6], [15.6, 24.1], [65.2, 96.03]]