我有一個腳本這將(除其他事項外):的Python:最簡單和防彈的方式來讀寫小文件
- 讀取文件的第一行(這是一個十六進制INT)來存儲它在一個可變
- 讀取,並增加相同文件的第二行(DEC INT)
那麼,什麼是最簡單的方法,不需要將因爲位置等
Alternati我的頭髮真的,我應該以不同的方式組織我的文件嗎?
我有一個腳本這將(除其他事項外):的Python:最簡單和防彈的方式來讀寫小文件
那麼,什麼是最簡單的方法,不需要將因爲位置等
Alternati我的頭髮真的,我應該以不同的方式組織我的文件嗎?
這可以解決你的問題:
with open(SourceFile, 'r') as file:
data = file.readlines()
print "Your data at line 1" + data[0]
data[1] = "New line to insert instead of the 2nd line\n"
with open(SourceFile, 'w') as file:
file.writelines(data)
import io
firstLine = 0x10
secondLine = 0x20
print ("create file")
file = open('test.txt', 'w')
file.write(hex(firstLine) + '\n')
file.write(hex(secondLine) + '\n')
file.flush()
file.close()
file2 = open('test.txt', 'r')
print ("create file done")
print ("read file")
first = file2.readline()
second = file2.readline()
firstLineOut = int(first,16)
print ('First: ', hex(firstLineOut))
secondLineOut = int(second,16)
print ('Second: ', hex(secondLineOut))
file2.close()
print ("update file")
secondLineOut += 1
print ('Second New: ', hex(secondLineOut))
file2 = open('test.txt', 'w')
file2.write(hex(firstLineOut) + '\n')
file2.write(hex(secondLineOut) + '\n')
file2.flush()
file2.close()
print ('done')
我沒想到的最好的辦法是重新寫第一行很好,但我可能是錯的。
我試圖的FileInput()(與就地= 1,你可以打印到您的文件),我做了一個爛攤子。
所以,大部分來自@mid的解決方案的啓發,這裏是我的代碼: #在/ usr/bin中/ env的Python的 # - - 編碼:UTF-8 - -
nom = "chambre"
with open(nom + ".txt", 'r') as file:
data = file.readlines()
remote = int(data[0], 16)
code = int(data[1])
data[1] = str(code + 1)
print hex(remote)
print code
with open(nom + ".txt", 'w') as file:
file.writelines(data)
什麼是問題嗎? – tinySandy
當你說「讀取並增加同一文件的第二行」時,是否包括將其寫回同一個文件?您的文件是文本文件還是二進制文件?如果它是一個文本文件,您能否顯示前兩行數據的樣本?請顯示你寫了什麼代碼來解決這個問題。 –
@Steven Rumbalski 它是你想讓我使用的任何文件(目前是一個文本文件)。該文件可能包含第1行的「0x2227AB」和第2行的「13」。 我需要讀取0x2227AB並將其存儲在一個變量中。 然後讀取13並將其存儲在一個變量中。 然後用14替換13(並在下次打開文件時增加它)並關閉文件。 – Nicolas