Python - 读取TXT文件行 --> 数组
我需要用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)