我在Python 2.7中迭代一个进程时遇到了麻烦。 我已经尽可能地简化它以调试第一步,并希望在此基础上进行构建。 如果我指定数据
data = ("-4.916409,36.629535,3.721236,255,232,242")
然后让它分裂
X,Y,Z,R,G,B = data.split(",")
我可以重新组合一些元素来创建具有这些元素名称的新文件和/或文件夹:
RGB = (R + "+" + G + "+" + B)
os.makedirs(inputFolder + os.sep + RGB)
fo = open("Z:\\temp\\output" + os.sep + RGB + os.sep + RGB + ".txt", "w")
fo.write(X + "," + Y + "," + Z + "\n")
但是当我尝试从较长的文本文件中执行此操作时,我无法再将这些元素组合到这个" RGB"作为文件和/或文件夹名称(仅限#34; R"或" G"或" B"),并且只获得第一行的回报。
inputFolder = ("Z:\\temp\\output")
coordinates = open("Z:\\temp\\accident2.txt", "r")
for line in coordinates:
X,Y,Z,R,G,B = line.split(",")
RGB = (R + "+" + G + "+" + B)
os.makedirs(inputFolder + os.sep + R)
fo = open("Z:\\temp\\output" + os.sep + R + os.sep + R + ".txt", "w")
fo.write(X + "," + Y + "," + Z + "\n")
但如果我从整数转换为小数,它就有效:
RGB = (X + "," + Y + "," + Z)
然后我可以写:
fo = open("Z:\\temp\\output" + os.sep + RGB + os.sep + RGB + ".txt", "w")
哪个不太正确,但更接近我想要的。 为什么带小数的数字更容易"读"比那些没有? 我如何修复它,以便整数被视为带小数的那些?
答案 0 :(得分:0)
你的坐标是一个文件对象,你需要从这个对象中读取。实际上,您可以使用readlines,file对象的函数逐行读取。检查文档
inputFolder = ("Z:\\temp\\output")
with open("Z:\\temp\\accident2.txt", "r") as coordinates:
for linenumber,line in enumerate( coordinates.readlines() ):
X,Y,Z,R,G,B = line[:-1].split(",")
RGB = (R + "+" + G + "+" + B)
try:
os.makedirs(inputFolder + os.sep + R)
fo = open("Z:\\temp\\output" + os.sep + R + os.sep + R + ".txt", "w")
fo.write(X + "," + Y + "," + Z + "\n")
except:
print "problem in line %d"%linenumber