使用Python修改文件中的行

时间:2015-03-12 15:41:30

标签: python python-3.x

有一个给定的文件text.txt,其中包含用罗马数字编号的书籍章节。我需要编写一个程序,将给定文件重写为new.txt,其中数字被替换为1到3的常规数字。此外,程序应该询问用户输入数字并打印出该特定章节

def main():
    found = False
    search=input('Enter a description of a chapter in Roman numerals: ')
    new_num = int(input('Enter a new number: '))

    text=open('sentence.txt', 'r')
    new_file=open('new.txt', 'w')
    descr=sentence.readline()

    while line!='':
       num=float(sentence.readline())
       descr = descr.rstrip('\n')

       if descr == search: #trying to capture the roman numeral
          new_file.write(descr + '\n')
          new_file.write(str(new_num) + '\n') #trying to substitute roman numeral with a number

          found=True
       else:
#writing the original record to the temp file with regular numbers
          new_file.write(descr + '\n')
          new_file(str(new_num) + '\n')

       descr=sentence.readline()
    sentence.close()
    new_file.close()

    if found:
           print("The file has been rewritten")
    else:
           print('Not found')
main()

到目前为止,我试图用“我'到常规号码并将其写入新文件。但是,程序一直给我错误......

有没有办法不要求输入,而是用常规数字替换表示书籍章节的罗马数字,并将其余文本重写为新文件?如何解决这个问题的任何建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您看到哪些错误?这条线似乎不正确:

new_file(str(new_num) + '\n')

也许应该是:

new_file.write(str(new_num) + '\n')