Python:如何删除每行文本fi的第2和第3个元素/变量

2024-04-26 21:32:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件,格式如下:

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还不太熟悉,不确定如何处理这个问题。任何帮助都将不胜感激。谢谢

代码正在进行中。 到目前为止,它是这样写的文件.txt并删除前三行并将其作为新文件.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()

Tags: 文件thetxt元素close格式sysline
2条回答

最好的方法是用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()

相关问题 更多 >