读取行的选定部分并将其放入数组中

2024-04-29 11:48:07 发布

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

如何在Python中读取字符串的每一行,并将所选行存储为数组中的元素?在

我想逐行读取文件,并且每行都追加到数组的末尾。我在任何地方都找不到如何做到这一点,也找不到如何在Python中创建字符串数组。在

例如:

第1行=

 abc def gef
 lmn qrt was
 lmh kjd lxm

 skd fdj djk
 ndz weg tdg
 ndg has dbg

 pef rah vdg
 pas dgh ghr
 bde ghx ore

我的输出应该是:

^{pr2}$

Tags: 文件字符串元素def地方数组abc末尾
3条回答

像这样:

line1="""abc def gef
lmn qrt was
lmh kjd lxm

skd fdj djk
ndz weg tdg
ndg has dbg

pef rah vdg
pas dgh ghr
bde ghx ore"""


lis = [""]
for line in line1.splitlines():
    if line.strip():
        lis[-1] += "\n"+ line
    else:
        if lis[-1] != "":
            lis.append("")


print lis[0]
print lis[1]
print lis[2]

输出:

^{pr2}$

这将打开一个文件并将所有行读取到名为lines的变量中。它还会为您删除后面的新行。在

with open('<<FILENAME>>', 'r') as file:
    lines = [line.rstrip() for line in file.readlines()]

解剖:

with open...

指示您正在打开一个文件名供'r'读取,并命名结果文件对象file。它将在它下面的区块完成后为您销毁。在

lines =

将右侧的表达式赋值给lines

[line.rstrip() for line in file.readlines()]

根据文件内容创建列表:

  1. line.rstrip()发生在file.readlines()的结果中的每一行,它删除后面的新行。在
  2. for line in是一种就地枚举结果的方法(参见Python List Comprehensions)。在
  3. file.readlines()返回按新行拆分的所有行(及其行尾)的列表。在
>>> line1 = """abc def gef
... lmn qrt was
... lmh kjd lxm
...
... skd fdj djk
... ndz weg tdg
... ndg has dbg
...
... pef rah vdg
... pas dgh ghr
... bde ghx ore"""
>>> line1.split("\n\n")
['abc def gef\nlmn qrt was\nlmh kjd lxm', 
 'skd fdj djk\nndz weg tdg\nndg has dbg', 
 'pef rah vdg\npas dgh ghr\nbde ghx ore']
>>> for number, item in enumerate(line1.split("\n\n")):
...     print("Line number {0}".format(number))
...     print(item)
...
Line number 0
abc def gef
lmn qrt was
lmh kjd lxm
Line number 1
skd fdj djk
ndz weg tdg
ndg has dbg
Line number 2
pef rah vdg
pas dgh ghr
bde ghx ore
>>>

相关问题 更多 >