Python 读取和写入 .txt 文件

标签 python

我需要从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/

相关文章:

python - tensorflow 中的残差学习

python - 对 PyMongo 查询的结果进行排序

python - 无法覆盖由monkeypatch 为单例类设置的函数的初始值

python - 为什么我的 python 代码使我的服务器停滞不前?

python - 网络摄像头无法在 Ubuntu 12.04 上使用 OpenCV 2.4 的 python 接口(interface)

python - 分离 SQLAlchemy 实例,因此不会发生刷新

python - 将 Pandas DataFrames 保存为 HDF5 存储,各种错误

python - 如何在Python中让线程等待?

python - 重定向未知属性

python - 在 Python 中启动屏幕并执行 bash 命令