我需要从babynames2014.txt 文件中读取姓名,然后创建两个新文件,将男孩和女孩的名字分开。生成的文件应命名为 boynames2014.txt 和 girlsnames.txt。 Babynames2014.txt 文件如下所示:
1 诺亚艾玛
2 利亚姆·奥利维亚
3 梅森索菲亚
4 雅各布·伊莎贝拉
一直持续到达到 100 个男孩和女孩的名字。 到目前为止,我编写的代码创建了两个新文本文件,但 boynames2014 不包含任何内容,而 girlsnames2014 只包含名字 Noah,前面有数字 1,如下所示:1Noah。
我认为我需要使用 readline()
和 line.split()
在某个地方,我只是不确定在哪里以及如何正确使用它们。我还需要使用 try/except
block 来处理异常,以防找不到babynames2014.txt 文件。
infile = open("babynames2014.txt", "r")
outfile = open("boynames2014.txt", "w")
outfile = open("girlnames2014.txt", "w")
line = infile.readline()
datafield = line.split()
boyname2014 = datafield[0]
girlname2014 = datafield[1]
outfile.write(boyname2014)
outfile.write(girlname2014)
infile.close()
outfile.close()
我只学习了 2-3 个月的 Python,非常感谢任何帮助我学习更多的建议!
最佳答案
我注意到一件事在逻辑上不正确,即 boynames2014.txt 和 girlsnames2014.txt 的 outfile
你应该这样做。
infile = open("babynames2014.txt", "r")
outfile_boys = open("boynames2014.txt", "w")
outfile_girls = open("girlnames2014.txt", "w")
然后,您必须读取内文件并按新行分割所需的数据,如下所示。
lines = infile.read().split("\n")
然后迭代下面的行并按空格分割(默认)。
for line in lines:
datafield = line.split()
boyname2014 = datafield[1]
girlname2014 = datafield[2]
outfile_boys.write(boyname2014 + '\n')
outfile_girls.write(girlname2014 + '\n')
我为数据字段选择了 1 和 2 索引,因为您的文件包含如下数据:
1 男孩名女孩名
按空格分割会将boy_name 传送到第一个索引,将girl_name 传送到第二个索引
然后照常关闭文件。
infile.close()
outfile_boys.close()
outfile_girls.close()
希望对你有帮助!
关于Python 读取和写入 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42849677/