编辑python 3.5.1中的特定行

时间:2016-07-03 14:32:37

标签: python

在python 3.5.1中覆盖特定行时遇到问题我知道有解决方案,但是他们使用外部模块,或者是冗长且特定于该人员问题。

是否有一行代码可以做到这一点? 这是我正在寻找的:File.write("在这里插入文字","行覆盖")

这是我的代码:

from time import sleep
import os
#functions
def pause():
    pause = input("Paused press <ENTER> to continue")
print("attempting to open workspace......")
#

Fo = open("work1.txt", 'r+')#opens the file
print("workspace opened")
#mainloop :D
def Mainloop():
    global Fo
    Fo.close()
    Fo = open("work1.txt", 'r+')
    os.system('cls')
    print('''

''')
    print ("   ======")
    print ("   Read")
    print ("   Write")
    print ("   ======")
    print("")
    INP = input('   >')
    if INP == "Read":
        Hm = input("how much?")
        print("")
        if Hm == 'All':
            print(Fo.read())
        else:
            print(Fo.read(int(Hm)))
        sleep(2)
        pause()
        os.system('cls')
        Mainloop()
    if INP == "Write":
        TextToAdd = input("Text to Write:   ")
        Fo.write(TextToAdd)
        os.system('cls')
        Mainloop()
    else:
        print('Not avaliable')
        sleep(2)
        os.system('cls')
        Mainloop()

Mainloop()
pause()

1 个答案:

答案 0 :(得分:0)

您想要用不同的行替换文本文件中的一行吗?

    for line in open(filename):
        if line.rstrip('\n') == search_pattern:
            sys.stdout.write('%s\n' % replacement)
        else:
            sys.stdout.write('%s' % line)

而不是sys.stdout.write(),您可以例如填充列表,或写入(临时)文件等。

重要的想法是先获取所需的输入(搜索模式,替换字符串),然后逐行遍历文件。

解决方案属性:

  • 内存使用率低(因为你只在内存中保留一行)
  • O(n)运行时 - 文件所包含的行越多,此方法所需的时间越长

或者,如果文件保证很小,您可以将内容读入字符串并使用str.replace()替换您要搜索的行。