Python - 读取TXT文件行 --> 数组

0 投票
2 回答
658 浏览
提问于 2025-04-18 12:38

我需要用Python打开一个文本文件,然后一行一行地读取这个文件,把内容放进一个数组里。之后,我想把这个数组里的每一条内容写入数据库。以下是我目前的代码:

#!/usr/bin/python
# -*- coding: utf8 -*-

#importieren der Module
import MySQLdb
import sys
import re          # regex
import codecs      # utf8 support

# Datei file einlesen
names = []
fo = open("file.txt", "r")
print "Name of file:", fo.name
for line in fo:
    line = line.strip()

fo.close()

我该怎么做呢?有什么正确的命令可以把文本行放进数组里吗?

2 个回答

-1
lines = []
with open('file.txt', 'r') as f:
    lines = f.readlines()

这段代码应该能给你一个列表,列出你代码中的所有行。这是基于你的文本文件是多行的前提下,如果你的文本确实只在一行上,那么你可以用这段代码来创建行的列表。

splitOn = '\n'
fd = open('file.txt', 'r')
lines = fd.read().split(splitOn)

你可以把splitOn改成你想要的任何字符,用来分割字符串。如果有其他符号标记行的结束,而不是换行符的话。

1

如果我理解得没错,你的文本文件大概是这样的:

E YD6567
E YD9876
E YD9867
等等...

你想要去掉前面的 "E ",只保留 "YD####" 这些内容,存到一个列表里。你的循环代码可以写成这样:

for line in fo:
    names.append(line.replace('E ', '')

这里的 "append" 函数是用来往列表里添加一个新项目的。 "replace" 函数则是用来把你指定的字符串部分替换成你想要的其他内容(在这个例子里,就是把 "E " 替换成空,也就是把它从字符串中去掉)。

如果你想要保存整行内容(包括 "E "),那就简单多了:

for line in fo:
    names.append(line)

撰写回答