Python 多重提问
我从txt读取数据。第一行是行的标签,从第二行到最后是数据 Q1)如何跳过第1行 数据的格式是34,5,而不是34.5,因此我不能使用float() 我尝试str.replace()但没有成功 Q2)转换过程中是否有其他想法或建议 问题3)我通过QGIS使用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
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]]