简体   繁体   中英

column removal in a several consecutive text files of the same directory, python

I'm looking to manipulate a text files and remove all irrelevant columns after removing irrelevant rows(already done),of course leaving only the fifth and sixth column , while being able to run it an a whole directory of files at once, instead of going one file at a time

i have written the first part in which i remove the irrelevant rows

this a sample of the file after row removal

ABCDE   1   *   2003-04-27T20:05:00.000 +016.477000 -31.640000  ABCDE_00002_ABC 1496         341.25 1   979477.00   1     -10.31    1      22.62    1
ABCDE   2   *   2003-04-27T20:05:20.000 +016.477000 -31.640000  ABCDE_00002_ABC 1496         341.40 1   979477.00   1     -10.93    1      22.56    1
ABCDE   3   *   2003-04-27T20:05:40.000 +016.477000 -31.640000  ABCDE_00002_ABC 1496         341.48 1   979477.44   1     -10.87    1      23.00    1
ABCDE   4   *   2003-04-27T20:06:00.000 +016.477000 -31.640000  ABCDE_00002_ABC 1496         341.80 1   979478.88   1      -9.76    1      24.37    1
ABCDE   5   *   2003-04-27T20:06:20.000 +016.476000 -31.640000  ABCDE_00002_ABC 1496         341.80 1   979478.44   1     -10.20    1      23.87    1
ABCDE   6   *   2003-04-27T20:06:40.000 +016.476000 -31.640000  ABCDE_00002_ABC 1496         341.53 1   979475.19   1     -12.79    1      20.62    1
ABCDE   7   *   2003-04-27T20:07:00.000 +016.476000 -31.640000  ABCDE_00002_ABC 1496         341.60 1   979472.69   1     -14.93    1      18.06    1
ABCDE   8   *   2003-04-27T20:07:20.000 +016.476000 -31.640000  ABCDE_00002_ABC 1496         341.80 1   979473.38   1     -14.93    1      18.75    1
ABCDE   9   *   2003-04-27T20:07:40.000 +016.475000 -31.640000  ABCDE_00002_ABC 1496         341.80 1   979475.56   1     -13.25    1      20.87    1
ABCDE   10  *   2003-04-27T20:08:00.000 +016.475000 -31.640000  ABCDE_00002_ABC 1496         341.90 1   979476.56   1     -12.74    1      21.87    1
ABCDE   11  *   2003-04-27T20:08:20.000 +016.475000 -31.640000  ABCDE_00002_ABC 1496         341.90 1   979477.44   1     -12.63    1      22.69    1
ABCDE   12  *   2003-04-27T20:08:40.000 +016.475000 -31.640000  ABCDE_00002_ABC 1496         341.95 1   979476.69   1     -13.31    1      21.94    1
ABCDE   13  *   2003-04-27T20:09:00.000 +016.475000 -31.640000  ABCDE_00002_ABC 1496         342.10 1   979476.31   1     -13.97    1      21.50    1
ABCDE   14  *   2003-04-27T20:09:20.000 +016.474000 -31.640000  ABCDE_00002_ABC 1496         342.23 1   979477.19   1     -13.69    1      22.37    1
ABCDE   15  *   2003-04-27T20:09:40.000 +016.474000 -31.640000  ABCDE_00002_ABC 1496         342.44 1   979478.25   1     -13.08    1      23.37    1
ABCDE   16  *   2003-04-27T20:10:00.000 +016.474000 -31.640000  ABCDE_00002_ABC 1496         342.60 1   979479.56   1     -12.53    1      24.69    1
ABCDE   17  *   2003-04-27T20:10:20.000 +016.474000 -31.640000  ABCDE_00002_ABC 1496         342.75 1   979480.94   1     -12.58    1      26.00    1
ABCDE   18  *   2003-04-27T20:10:40.000 +016.473000 -31.640000  ABCDE_00002_ABC 1496         342.78 1   979479.81   1     -14.59    1      24.87    1
ABCDE   19  *   2003-04-27T20:11:00.000 +016.473000 -31.640000  ABCDE_00002_ABC 1496         342.77 1   979478.12   1     -16.83    1      23.12    1
ABCDE   20  *   2003-04-27T20:11:20.000 +016.473000 -31.640000  ABCDE_00002_ABC 1496         342.90 1   979477.00   1     -18.18    1      22.00    1
ABCDE   21  *   2003-04-27T20:11:40.000 +016.472000 -31.640000  ABCDE_00002_ABC 1496         342.78 1   979476.50   1     -19.35    1      21.50    1
ABCDE   22  *   2003-04-27T20:12:00.000 +016.472000 -31.640000  ABCDE_00002_ABC 1496         342.75 1   979477.75   1     -18.46    1      22.69    1
ABCDE   23  *   2003-04-27T20:12:20.000 +016.472000 -31.640000  ABCDE_00002_ABC 1496         342.10 1   979478.81   1     -18.07    1      23.75    1
ABCDE   24  *   2003-04-27T20:12:40.000 +016.472000 -31.640000  ABCDE_00002_ABC 1496         342.46 1   979478.88   1     -18.85    1      23.75    1
ABCDE   25  *   2003-04-27T20:13:00.000 +016.471000 -31.640000  ABCDE_00002_ABC 1496         342.78 1   979478.81   1     -19.52    1      23.69    1
ABCDE   26  *   2003-04-27T20:13:20.000 +016.471000 -31.640000  ABCDE_00002_ABC 1496         343.33 1   979478.00   1     -20.02    1      22.81    1
ABCDE   27  *   2003-04-27T20:13:40.000 +016.471000 -31.650000  ABCDE_00002_ABC 1496         343.63 1   979476.94   1     -20.75    1      21.75    1
ABCDE   28  *   2003-04-27T20:14:00.000 +016.470000 -31.650000  ABCDE_00002_ABC 1496         344.42 1   979476.19   1     -21.20    1      20.94    1
ABCDE   29  *   2003-04-27T20:14:20.000 +016.470000 -31.650000  ABCDE_00002_ABC 1496         343.20 1   979477.25   1     -20.52    1      22.00    1
ABCDE   30  *   2003-04-27T20:14:40.000 +016.469000 -31.650000  ABCDE_00002_ABC 1496         343.93 1   979479.81   1     -18.85    1      24.56    1
ABCDE   31  *   2003-04-27T20:15:00.000 +016.469000 -31.650000  ABCDE_00002_ABC 1496         344.27 1   979481.06   1     -18.78    1      25.75    1
ABCDE   32  *   2003-04-27T20:15:20.000 +016.469000 -31.650000  ABCDE_00002_ABC 1496         344.10 1   979481.62   1     -19.68    1      26.31    1

this part removed the irrelevant rows

target_file = 'directory/F11.txt copy.txt'
after_lines = 'Anew.txt'
after_columns = 'Bnew.txt'

infile = open(target_file,'r').readlines()

with open(after_lines, 'w') as outfile:
    for index, line in enumerate(infile):
        if index >= 8:
            outfile.write(line)

need to remove columns remaining with only the fifth and sixth column left

end result should look like this

+016.477000 -31.640000
+016.477000 -31.640000
+016.477000 -31.640000
+016.477000 -31.640000
+016.476000 -31.640000
+016.476000 -31.640000
+016.476000 -31.640000
+016.476000 -31.640000
+016.475000 -31.640000
+016.475000 -31.640000  
+016.475000 -31.640000
+016.475000 -31.640000
+016.475000 -31.640000
+016.474000 -31.640000
+016.474000 -31.640000
+016.474000 -31.640000
+016.474000 -31.640000
+016.473000 -31.640000
+016.473000 -31.640000
+016.473000 -31.640000
+016.472000 -31.640000
+016.472000 -31.640000
+016.472000 -31.640000
+016.472000 -31.640000
+016.471000 -31.640000
+016.471000 -31.640000
+016.471000 -31.650000
+016.470000 -31.650000
+016.470000 -31.650000
+016.469000 -31.650000
+016.469000 -31.650000
+016.469000 -31.650000

Read one line, extract the data you need from it, write it to the other file. Rinse, repeat:

with open("input.txt") as In, open("output.txt", "w") as Out:
    for line in In:
        values = line.split()
        Out.write(f"{values[4]} {values[5]}\n")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM