2016-10-31 52 views
-2

很自我解釋。這是我的文本文件:如何通過索引從文件中刪除一行?

C:\Windows\Users\Public\Documents\ 
C:\Program Files\Text Editor\ 

所以,我有代碼提示用戶輸入他想刪除的行號。但是,如何刪除與該號碼對應的行?

編輯:

要問代碼的人:

# Viewing presets 
if pathInput.lower() == 'view': 
    # Prints the lines in a numbered, vertical list. 
    numLines = 1 

    numbered = '' 
    for i in lines: 
     i = str(numLines) + '. ' + i 
     numbered += i 
     print (i) 

     numLines += 1 

    viewSelection = input('\n^ Avaiable Paths ^\nInput the preset\'s number you want to perform an action on.\n') 

    for i in numbered: 
     if viewSelection in i: 
      viewAction = input('\nInput action for this preset.\nOptions: "Delete"') 
      if viewAction.lower() == 'delete': 

我只是想辦法刪除一行通過它在一個文件編號。

+0

而不是實際編輯原始文件,它更容易創建一個具有每行__except__一來就被刪除一個新的文件,然後後來重命名文件。 –

+0

可能重複[如何在Python中便宜地計算行數?](http://stackoverflow.com/questions/845058/how-to-get-line-count-cheaply-in-python) – thesonyman101

+0

@Chris_Rands I haven'噸試了很多。我用代碼更新了帖子。 – m1ksu

回答

0

一種簡單的方法是將行讀入列表中,更新列表並將其寫回到同一個文件中。事情是這樣的:

with open("file.txt", "r+") as f: 
    lines = f.readlines() 
    del lines[linenum] # use linenum - 1 if linenum starts from 1 
    f.seek(0) 
    f.truncate() 
    f.writelines(lines) 
相關問題