用于删除文件最后一列的Python脚本

时间:2016-04-26 20:57:06

标签: python file

我有一堆文件由大约100000行的数据组成。我有一个主目录和12个子文件夹,在12个子文件夹中我有相应的文件相应的不同月份。

我想要一个脚本,我提到路径,脚本将转到12个文件夹中的每个文件,并删除文件中的最后一列。

我写过这个脚本,它没有按预期部分工作。

任何帮助都会有所帮助。

#!/usr/bin/env python

import os, sys

readFile = open("erda0031.dat")
readFile = open("erda0033.dat")

lines = readFile.readlines()

readFile.close()
w = open("erda0031.dat",'w')
w = open("erda0033.dat",'w')

w.writelines([item for item in lines[:-1]])

path = "C:\Users\126\Desktop\python\\" 
path = "C:\Users\126\Desktop\python\01_JAN\\"

1 个答案:

答案 0 :(得分:1)

您尚未指定有关列分隔符的任何内容。

正如tfv所说,这会删除最后一行。

你可以删除带有核心python片段的最后一个字符。

for line in readFile.readlines():
    line = line.rstrip() #Remove trailing whitespace inc. newline.
    w.write(line[:-1] + "\n")

但你说最后一栏。所以我觉得你真的想要这样的东西: -

delim = '|'

for line in readFile.readlines():
    line = line.rstrip() #Remove trailing whitespace inc. newline.
    datarow = line.split(delim)
    w.write(delim.join(datarow[:-1]) + "\n")

最后看一下使用csv模块,如果你的数据是csv,它会正确解码你的数据文件的csv,并允许你吐出正确的转义csv。除了在该示例中删除所有繁琐的手动split() - ing和join()。