1

我正在从图形生成随机边并打印它们,但每次我尝试将其保存到文本文件时,都会出现类似TypeError: expected a character buffer object. 代码如下:

import re
import md5
import pickle
import networkx as nx
import itertools
from random import choice

ff=open("testfile.txt","r+")
G=nx.read_gpickle("authorgraph_new.gpickle")
for nodes in G:
    random_edge=choice(G.edges())
    ff=open("testfile.txt","a")
    ff.write(random_edge)

我需要将 random_edge 的输出保存在文本文件中,最好保存在列中,因为 的值random_edge采用(abcdef, pqrstu). 我想将两者放在同一行的单独列中,并将下一个值放在同一列中。我知道我可以使用"\n"来获取换行符的输出但是当我使用

ff.write(random_edge + "\n")

我得到一个错误TypeError: can only concatenate tuple (not "str") to tuple

4

2 回答 2

2

在这种情况下,您可以尝试用 2 行来完成,例如:

for nodes in G:
    ff.write(random_egde)
    ff.write('\n')

希望这对您的情况有用。
这里第一行写入您的数据,而第二行向数据添加新行。

于 2012-05-30T09:11:44.390 回答
0

Joel 的评论是正确的:您将结果(元组)与换行符(一个字符串)连接起来。Python 不喜欢以这种方式混合数据类型。如果您正在编写更复杂的结构化数据,那么将来您可能还想研究 python 的 csv 模块。

于 2012-05-30T12:58:24.043 回答