0

我希望我不会重新发布(我之前做过研究),但我需要一点帮助。

所以我会尽可能地解释这个问题。

我有一个文本文件,在其中我有这种格式的信息:

a 10
b 11
c 12

我阅读了这个文件并将其转换为一个字典,其中第一列作为键,第二列作为值。

现在我试图做相反的事情,我需要能够用相同格式的修改值写回文件,键用空格分隔,然后是相应的值。

我为什么要这样做?

好吧,所有值都应该可以由用户使用该程序进行更改。因此,当决定更改这些值时,我需要将它们写回文本文件。

这就是问题所在,我只是不知道该怎么做。

我该怎么做呢?

我有我当前的代码来读取这里的值:

T_Dictionary = {}
    with open(r"C:\NetSendClient\files\nsed.txt",newline = "") as f:
        reader = csv.reader(f, delimiter=" ")
        T_Dictionary = dict(reader)
4

2 回答 2

0

像这样的东西:

def txtf_exp2(xlist):
    print("\n", xlist)
    t = open("mytxt.txt", "w+")

    # combines a list of lists into a list
    ylist = []
    for i in range(len(xlist)):
        newstr = xlist[i][0] + "\n"
        ylist.append(newstr)
        newstr = str(xlist[i][1]) + "\n"
        ylist.append(newstr)

    t.writelines(ylist)
    t.seek(0)
    print(t.read())
    t.close()


def txtf_exp3(xlist):
    # does the same as the function above but is simpler
    print("\n", xlist)
    t = open("mytext.txt", "w+")
    for i in range(len(xlist)):
        t.write(xlist[i][0] + "\n" + str(xlist[i][1]) + "\n")
    t.seek(0)
    print(t.read())
    t.close()

您必须进行一些更改,但这与您尝试做的非常相似。米

于 2013-03-31T19:17:33.933 回答
0

好的,假设字典被称为 A 并且文件是 text.txt 我会这样做:

W=""

for i in A:    # for each key in the dictionary
    W+="{0} {1}\n".format(i,A[i])     # Append to W a dictionary key , a space , the value corresponding to that key and start a new line

with open("text.txt","w") as O:
    O.write(W)

如果我明白你在问什么。
但是使用此方法会在文件末尾留下一个空行,但可以删除替换

O.write(W)

O.write(W[0:-1])

我希望它有帮助

于 2013-03-31T19:30:36.947 回答