python - 从文本文件的一行中分割两个范围

标签 python file python-3.x strip substring

我试图通过循环来提取 python 3 中打开的文本文件的每行两个范围。

应用程序有一个 Entry 小部件,其值存储在 self.search 中。然后,我循环遍历包含所需值的文本文件,并将结果写入 self.searchresults,然后显示在文本框中。

我尝试了下面第三行的变体,但没有取得任何进展。

我想写出从 3:24 到 81:83 的每行字符...

for line in self.searchfile:
    if self.search in line:
        line = line[3:24]+[81:83]
        self.searchresults.write(line+"\n")

这是我正在使用的文本文件的删节版本(原始 here ):

! Author: Greg Thompson  NCAR/RAP
!         please mail corrections to gthompsn (at) ucar (dot) edu
! Date: 24 Feb 2015
! This file is continuously maintained at:
! http://www.rap.ucar.edu/weather/surface/stations.txt
!
! [... more comments ...]

ALASKA             19-SEP-14                                                  
CD  STATION         ICAO  IATA  SYNOP   LAT     LONG   ELEV   M  N  V  U  A  C
AK ADAK NAS         PADK  ADK   70454  51 53N  176 39W    4   X     T          7 US
AK AKHIOK           PAKH  AKK          56 56N  154 11W   14   X                8 US
AK AKUTAN           PAUT               54 09N  165 36W   25   X                7 US
AK AMBLER           PAFM  AFM          67 06N  157 51W   88   X                7 US
AK ANAKTUVUK PASS   PAKP  AKP          68 08N  151 44W  642   X                7 US
AK ANCHORAGE INTL   PANC  ANC   70273  61 10N  150 01W   38   X     T  X  A    5 US

最佳答案

你的情况并不遥远 - 你的问题是你需要在每次切片时指定要切片的内容:

for line in self.searchfile:
    if self.search in line:
        line = line[3:24] + line[81:83]
        self.searchresults.write(line+"\n")

...但您可能需要用空格分隔两个字段:

        line = line[3:24] + " " + line[81:83]

但是,如果您发现自己多次使用 + 来构造字符串,则应该考虑使用 Python 的 built-in string-formatting abilities相反(当您执行此操作时,您可以在同一操作中添加换行符):

for line in self.searchfile:
    if self.search in line:
        formatted = "%s %s\n" % (line[3:24], line[81:83])
        self.searchresults.write(formatted)

关于python - 从文本文件的一行中分割两个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173174/

相关文章:

python - 文件中定义的全局变量不能更改

file - 如何在 C#.NET 应用程序中卸载时删除文件夹?

c++ - 如何在没有getline的情况下在c++中获取文件中的空格字符

python - 在 Python 3 中绘制 3D 图形

python - Python 内置的任意长度字节到 int

python - 禁用 python 内置函数

python - sudo -E 不通过 PYTHONPATH

Python 无法执行终端脚本,使用 sh 或 bash

python - Pandas - 将 2 级索引字典映射到 DataFrame 列

c - 如何在 C 中只读取文件中的数字直到 EOF