我在一個文件夾中有數百個代理日誌文件,並希望從所有日誌文件中刪除auth_user
列,並將它們輸出到另一個文件夾。使用python,我們如何從代理日誌文件中刪除auth_user列?
auth_user
列用雙引號括起來。最大的問題是我不能使用空格字符作爲文本分隔符,因爲某些日誌文件在timestamp
和auth_user
之間沒有空格。我試圖用雙引號作爲文本分隔符,但是這會導致一些奇怪的結果,因爲有時雙引號之間沒有任何內容。
我到目前爲止有:
for src_name in glob.glob(os.path.join(source_dir, '*.log')):
base = os.path.basename(src_name)
dest_name = os.path.join(dest_dir,base)
with open(src_name, 'rb') as infile:
with open(dest_name, 'w') as outfile:
reader = csv.reader(infile, delimiter='"')
writer = csv.writer(outfile, delimiter='"')
for row in reader:
row[1] = ''
writer.writerow(row)
日誌文件如下(time_stamp
"auth_user"
src_ip
):
[21/Apr/2013:00:00:00 -0300]"cn=john smith,ou=central,ou=microsoft,o=com" 192.168.2.5
[21/Apr/2013:00:00:01 -0400]"jsmith" 192.168.4.5
[21/Apr/2013:00:00:01 -0400]"" 192.168.15.5
[22/Apr/2013:00:00:01 -0400]"" 192.168.4.5
[22/Apr/2013:00:00:01 -0400]"jkenndy" 192.168.14.5
我願意把它改變成這個(time_stamp
src_ip
):
[21/Apr/2013:00:00:00 -0300] 192.168.2.5
[21/Apr/2013:00:00:01 -0400] 192.168.4.5
[21/Apr/2013:00:00:01 -0400] 192.168.15.5
[22/Apr/2013:00:00:01 -0400] 192.168.4.5
[22/Apr/2013:00:00:01 -0400] 192.168.14.5
'auth_user'行是否沒有時間戳? 'auth_user'後面的行中的空引號是什麼?你想僅在'username'行開始數據嗎?如果這兩行位於文件的開頭,則可以在從第三行開始讀取文件時忽略它們。 – albert
嗨,歡迎來到StackOverflow。 **請不要寫出大膽的問題,因爲感覺就像你在喊我們。** :) –
#time_stamp「auth_user」<-----第一行的更正 –