Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将带有数字的元组作为字符串保存到文件_Python - Fatal编程技术网

Python 将带有数字的元组作为字符串保存到文件

Python 将带有数字的元组作为字符串保存到文件,python,Python,我从机器学习中的Python开始,我对自己解决老Kaggle竞争很感兴趣。 我需要做的第一件事是将编码像素列表转换为一个边界框,将其转换为左上角和右下角的矩形坐标,并将其保存到特定的输出中,然后将其保存到一个文件中 我已经找到了使用RLE算法转换编码像素的例子,我需要更改它以保存到文件中。我的特殊问题是以x1、y1、x2、y2格式将元组保存到文件中 我有一个代码,它从像素列表中获取第一个和最后一个坐标。首先,我尝试了: f=open(“file.txt”、“w”) f、 写入(str(掩码像素[

我从机器学习中的Python开始,我对自己解决老Kaggle竞争很感兴趣。 我需要做的第一件事是将编码像素列表转换为一个边界框,将其转换为左上角和右下角的矩形坐标,并将其保存到特定的输出中,然后将其保存到一个文件中

我已经找到了使用RLE算法转换编码像素的例子,我需要更改它以保存到文件中。我的特殊问题是以
x1、y1、x2、y2
格式将元组保存到文件中

我有一个代码,它从像素列表中获取第一个和最后一个坐标。首先,我尝试了:

f=open(“file.txt”、“w”)
f、 写入(str(掩码像素[0])+str(掩码像素[len(掩码像素)-1]))
f、 写入(“\n”)
f、 关闭()
但是输出类似于
(469344)(498447)
(这是一个元组,所以这很好)

我尝试使用
join
函数,如下所示:

坐标=遮罩像素[0],遮罩像素[len(遮罩像素)-1] f=打开(“file.txt”,“w”) 对于坐标中的x: f、 写入(“,”.join(str(x))) f、 写入(“\n”) f、 关闭() 但它保存为
(,4,6,9,,,3,4,4,)(,4,9,8,,,4,4,7,)

所以我试过了

f=open(“file.txt”、“a”)
f、 写入(str(协调1))
f、 写(“,”)
f、 写入(str(协调2))
f、 写入(“\n”)
f、 关闭()
但它保存为
(469344),(498447)
,这仍然是我不想要的。
有人能给我一个提示吗?我该怎么做才能在一个类似
469344498447
的文件中找到它?我不是直接要求代码(我知道你们可能没有时间),但我想知道我应该读什么/学什么。

你们可以在列表中转换元组并连接它们:

a = (469, 344)
b= (498,447)
result = list(a) + list(b)
输出:

[469, 344, 498, 447]
要返回到您的代码,它可能类似于:

f = open("file.txt", "w")
f.write(str(list(str(mask_pixels[0])) + list(str(mask_pixels[len(mask_pixels)-1]))))
f.write("\n")
f.close()

如果你想保存你所有的面具,你甚至可以做一个双重列表:

a = (469, 344)
b= (498,447)
c = (512,495)
list_of_tuples = [a, b, c]
result = [item for sublist in list_of_tuples for item in sublist]

Out : [469, 344, 498, 447, 512, 495]
输出

469, 344, 498, 447

将所有元组追加到列表中。然后从元组列表中展平列表。然后将展开列表写入文件。此外,您可以尝试使用此
遮罩像素[0]+遮罩像素[len(遮罩像素)-1]
。不是将它们转换成字符串格式,而是将它们合并到一个列表中。第二种方法可能与@Arkistarvh Kltzuonstev重复我仍然有括号
(469、344、498、447)
,但第一种方法看起来不错,谢谢:)@SmartManoj可能是,谢谢链接,我会读到的,但乍一看可能是重复的,但是
不需要str,而不是列表吗?你是对的,我忘了重铸为字符串,谢谢!看起来还可以,但它会写下整个列表-正如我在问题中所写的,我只需要保存
遮罩像素[0]
遮罩像素[len(遮罩像素)-1]
,但感谢点击,我将检查它并将其用于我的代码:)
469, 344, 498, 447