簡體   English   中英

Python:如何刪除文本文件每一行的第二和第三元素/變量

[英]Python: How to delete the 2nd and 3rd element/variable for every line of text file

我有一個具有這種格式的文本文件:

 1 1 (101): 3.7e+08 1.2e+02 5.1234 2 1 (101): 3.5e+08 8.2e+02 6.2222 2 2 (101): 1.7e+08 2.2e+02 7.4567 3 1 (101): 8.7e+08 3.2e+02 9.2123 

我想將其轉換為以下格式:

 1 3.7e+08 1.2e+02 5.1234 2 3.5e+08 8.2e+02 6.2222 2 1.7e+08 2.2e+02 7.4567 3 8.7e+08 3.2e+02 9.2123 

我實質上是想從每一行中刪除第二個和第三個元素/變量。 有什么建議么? 我是python的新手,不確定如何解決這個問題。 任何幫助,將不勝感激。 謝謝

該代碼正在進行中。 到目前為止,它讀取file.txt並刪除前三行並將其寫為newfile.txt。 這里是:

import sys
try:
     f=open('file.txt', 'r')
     lines = f.readlines()
except IOError:
     print('File file.txt does not exist')
     sys.exit(1)
for line in lines:
     sys.stdout.write(line)
     f.close()
# Deleting the first three lines
del lines[0:3]
# Deleting the second and third element of every line

f=open('newfile.txt','w')
f.writelines(lines)
print(lines)
f.close()

最好通過使用csv讀取文件來完成此操作。 看來文件是制表符分隔的(請確認嗎?),因此您可以通過以下方式進行操作

import csv

with open('file.txt', 'rb') as f:
    reader = csv.reader(f, delimiter='\t') # Adjust delimiter as appropriate to your file format.

    # Skip 3 lines.
    for i in xrange(3):
         reader.next()

    new_lines = []
    for line in reader:
         new_line = [line[0]] + line[3:]
         new_lines.append(new_line)

# Write to the new file
with open('new_file.txt', 'wb') as f:
    writer = csv.writer(f, delimiter='\t') # Again, adjust delimiter as appropriate.
    writer.writerows(new_lines)

這也許就是您想要的。

import sys
try:
     f=open('file.txt', 'r')
     lines = f.readlines()
except IOError:
     print('File file.txt does not exist')
     sys.exit(1)

for line in lines:
     sys.stdout.write(line)
     f.close()

newl=[]
for line in lines:
    temp = line.split()
    newl.append([temp[0]]+temp[3:])

f=open('newfile.txt','w')
f.writelines(['  '.join(l)+'\n' for l in newl])
print(newl)
f.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM