如何在Python中存储和检索数字,以及如何更改数字

如何在Python中存储和检索数字,以及如何更改数字,python,gedit,Python,Gedit,我有一组3(2100、150)个数字,我想从.txt文件中检索它们,并对它们进行更改,然后将它们放回原处。我尝试了数千种方法,但什么也找不到 这是我尝试过的一些代码,所以如果我犯了任何错误,请您尝试并纠正它们 with open('bankstatmentrubyoscarpoints.py') as f: for ln in f: a = [int(x) for x in ln.split()] date = a[0] credit = a[1] balen

我有一组3(2100、150)个数字,我想从
.txt
文件中检索它们,并对它们进行更改,然后将它们放回原处。我尝试了数千种方法,但什么也找不到

这是我尝试过的一些代码,所以如果我犯了任何错误,请您尝试并纠正它们

with open('bankstatmentrubyoscarpoints.py') as f:
for ln in f:
    a = [int(x) for x in ln.split()]


    date = a[0]
    credit = a[1]
    balence = a[2]
    ndate = raw_input('new date is')
    ncredit = raw_input('the new credit is')
    f.write('\n')
    f.write(ndate)
    f.write('\t')
    f.write(ncredit)
    f.write('\t')
    f.write(nbalence)    

f.close

因此,答案将是惊人的

此代码有三个问题:

  • 缩进无效:
    with
    引入了一个新的块(“套件”),并且后面必须至少有一个缩进语句

  • open('bankstationrubyscarpoints.py')
    以读取模式将文件作为文本文件打开。你正试图写信给它。如果要读写,必须提供
    mode='rw'

  • 您正试图关闭使用
    with
    语句打开的文件。with语句的要点是您不需要这样做。此外,您实际上没有调用
    f.close
    ,因为函数调用需要括号
    ()


  • 如果文本文件中只有数字,您可以通过执行以下操作来擦除文件内容:
    open('bankstationRubyosCarPoints.py','w+)
    现在,当您执行写入操作时,文件内容应该被添加的新项覆盖欢迎加入堆栈溢出。请尽快阅读这一页。我认为你的评论“我已经尝试了成千上万的事情”是夸张的;从表面上看,它不太可能被认为是准确的。也许你应该说‘我尝试了很多东西’——没有人会对此吹毛求疵。您看过Python手册的哪些部分?您是否考虑过
    r+
    作为开放模式的优点?您的输入似乎与所有数字一起出现在一行中;您的输出似乎将数字写在三行上。你应该选择一种格式(任何一种都可以),并坚持下去。[…continued…][…continuent…]读取数据后,需要将其保存到文件中,然后可以写入修改后的值。(如果新文件比旧文件短,则截断很重要。)是我,还是您试图写入以读取模式打开的文件?有关您编写的代码问题的问题必须在问题本身中描述具体问题,并包括复制该问题的有效代码。请访问SSCCE.org以获取指导。只是一个更新,我在几年前编写了此代码,正如您所看到的,我非常糟糕,对于给您带来的不便,深表歉意。