我有有存儲在每個文件的第7行的日期TEXTFILES,格式爲這樣:拆除特定的行空間文本文件的Python
Date: 1233PM 14 MAY 00
我想通過每個文件進行搜索,並獲得新的生產線7格式化爲這樣的:
Date: 1233PM 14 MAY 2000
所以,基本上,我只需要堅持一個「20」在最後兩位數字的前面七號線。
可能不是最困難的問題,但我一直有困難,因爲textfile.readlines()將所有內容讀入第一個(textfile [0])位置。
我有有存儲在每個文件的第7行的日期TEXTFILES,格式爲這樣:拆除特定的行空間文本文件的Python
Date: 1233PM 14 MAY 00
我想通過每個文件進行搜索,並獲得新的生產線7格式化爲這樣的:
Date: 1233PM 14 MAY 2000
所以,基本上,我只需要堅持一個「20」在最後兩位數字的前面七號線。
可能不是最困難的問題,但我一直有困難,因爲textfile.readlines()將所有內容讀入第一個(textfile [0])位置。
可以讀取所有的文件,更改指定的行然後再保存它:
arc = open('file_name.txt').readlines()[0].split('\r')
#Do what you want with the 7th line i.e. arc[6]
new_arc = open('file_name.txt','w')
for line in arc:
new_arc.write(line)
new_arc.write('\n')
new_arc.close()
試試這個:
# open file
f = open("file.txt" , 'rU+b')
lines = f.readlines()
# modify line 7
lines[6] = lines[6][:-2] + "20" + lines[6][-2:]
# return file pointer to the top so we can rewrite the file
f.seek(0)
f.truncate()
# write the file with new content
f.write(''.join(lines))
f.close
也許這樣的:
with open(filename, 'r') as f:
lines = f.readlines()
with open(filename, 'w') as f:
for idx, line in lines:
if idx == 7: # or 6
vals = line.split()
if len(vals[-1]) == 2:
vals[-1] = '20'+vals[-1]
line = ' '.join(vals)
f.write(line)
你是什麼意思同時說「textfile.readlines()將所有內容讀入第一個(textfile [0])位置」。當我這樣做的時候,給我們一個來自你的文件和/或你的代碼的樣本,以瞭解你的問題 – 2013-03-06 04:00:36
:infile = open('file.txt','r')然後嘗試做一個簡單的打印[7]它超出範圍,因爲open命令將整個文本文件讀入第一行位置。 – wuffwuff 2013-03-06 04:04:19
你可以複製文件的一部分,並將其放入你的問題? – 2013-03-06 04:11:13