Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 2.7生成包含数据列表的txt文件 我是一个编程新手,甚至更多的是使用Python(我可以在C++中做一些基本的事情)_Python_File_Printing_Output - Fatal编程技术网

python 2.7生成包含数据列表的txt文件 我是一个编程新手,甚至更多的是使用Python(我可以在C++中做一些基本的事情)

python 2.7生成包含数据列表的txt文件 我是一个编程新手,甚至更多的是使用Python(我可以在C++中做一些基本的事情),python,file,printing,output,Python,File,Printing,Output,我正在编写一个朋友不久前为我编写的代码,我想将其输出存储在一个文件中,我认为.txt文件非常适合我想做的事情 您将在下面找到2个代码 第一个可以工作,但只在pythonwin的交互窗口中打印数据(我使用的是windows7和python2.7) 它打印类似的内容,这对我的项目非常有用: thrown out: bTUD, K2, MAG B, K1C, K1B, K1A, XTC64 II, REF , LBK, MAG C 1 1 : ['PINKwA', 'GB', 'PINK',

我正在编写一个朋友不久前为我编写的代码,我想将其输出存储在一个文件中,我认为
.txt
文件非常适合我想做的事情

您将在下面找到2个代码

第一个可以工作,但只在pythonwin的交互窗口中打印数据(我使用的是windows7和python2.7)

它打印类似的内容,这对我的项目非常有用:

thrown out: bTUD, K2, MAG B, K1C, K1B, K1A, XTC64 II, REF , LBK, MAG C
1   1   : ['PINKwA', 'GB', 'PINK', 'TUwA'] [ 0.23994351  0.61419796  0.00956974  0.1362888 ] tet_i 66
1   2   : ['PINKwA', 'GB', 'PINK', 'TUwA'] [ 0.23816363  0.61917833  0.01219634  0.13046169] tet_i 66
1   3   : ['PINKwA', 'GB', 'PINK', 'TUwA'] [ 0.23638376  0.6241587   0.01482295  0.12463459] tet_i 66
1   4   : ['PINKwA', 'GB', 'PINK', 'TUwA'] [ 0.23460388  0.62913907  0.01744955  0.11880749] tet_i 66
1   5   : ['PINKwA', 'GB', 'PINK', 'TUwA'] [ 0.23282401  0.63411944  0.02007616  0.11298039] tet_i 66
...etc.
第二个代码是我尝试使用函数
output
output.write
,但根本不起作用!我缺少python的基本语言技能,我想这就是为什么我无法找到解决方案的原因

第一个代码(打印功能正常)

编辑:下面的代码可以工作,但只导出文件中的一行数据

for target in targets:
    name, X, Y, Z, BG = target

    target_point = support + (np.array([X,Y,Z]) - support)/(1-BG)

    tet_i, bcoords = geometry.containing_tet(tg, target_point)


if tet_i == None:
    output = open('output.txt','a')
    output.write(str(target[0]))    

else:
    output = open('output.txt','a')
    names = [colors[i][0] for i in tg.tets[tet_i]]
    output.write(str(target[0]))
    output.write(str(names))
    output.write(str(bcoords))

您能帮我找出如何将数据写入文件吗?

当您打开文件时,我建议在您的案例中使用
'a'
作为第二个参数,这样文件也将始终被追加,而不是每次调用write方法时都被覆盖。 你在开始时说想要一个
.txt
文件,那你为什么不使用一个呢

output=open('output.txt','a')

其次,文件中的写入方法只能接受一个输入。每次要添加内容时,都要调用write方法。在您的情况下,请执行以下操作:

output.write(target[0]) output.write(names) output.write(bcoords) output.write(tet_i) output.write(目标[0]) 输出.写入(名称) 输出.写入(bcoords) 输出写入(tet_i)
编辑:此外,您放入文件中的任何内容都必须是字符串。您可以使用
str()
函数将其转换为字符串。

要添加到user2571168的解决方案中,我相信
output.write()
需要一个字符串,所以请尝试使用
str()
转换它们。比如说,

output.write(str(names))
编辑:

这可能会也可能不会解决您的问题,但您应该在完成写入后关闭该文件。例如:

if tet_i == None:
    output = open('output.txt','a')
    output.write(str(target[0]))
    output.close()

else:
    output = open('output.txt','a')
    names = [colors[i][0] for i in tg.tets[tet_i]]
    output.write(str(target[0]))
    output.write(str(names))
    output.write(str(bcoords))
    output.close()

注意对
output.close()
添加了两个调用。如果您的问题仍然存在,请稍后通知我。

谢谢,看起来是解决方案,但是我遇到了如下错误:
TypeError:应为字符缓冲区对象
,因此,您在文件中写入的任何内容都必须是字符串。如果它不是字符串,您可以使用
str(number)
轻松地将其转换为字符串,然后如果您想从文件中读回该数字,您可以使用python中的
int()
float()
内置函数将其转换为正确的格式。谢谢,这样已经更好了。文件已经创建,但是它只包含一行…最后一行,就像所有其他行都被覆盖一样,您能检查上面的msg编辑吗?谢谢,谢谢!这是一个解决了的问题,现在它可以工作了,但文件似乎只包含流程的最后一次迭代,并且它已经覆盖了以前的数据。我对上面的消息进行了编辑,知道代码现在有什么问题吗?谢谢,现在可以了:这个
output=open('output.txt','a')
必须放在
之前,如果tet\u I==None:
,由于你关于关闭文件的提示,我避免了另一个错误!
if tet_i == None:
    output = open('output.txt','a')
    output.write(str(target[0]))
    output.close()

else:
    output = open('output.txt','a')
    names = [colors[i][0] for i in tg.tets[tet_i]]
    output.write(str(target[0]))
    output.write(str(names))
    output.write(str(bcoords))
    output.close()