【问题标题】:Creating a new string from the 5th character of every line in a .txt file [closed]从.txt文件中每一行的第5个字符创建一个新字符串[关闭]
【发布时间】:2021-10-28 20:23:46
【问题描述】:

该函数必须返回一个通过将每行的第 5 个字符连接成一个字符串而创建的字符串。你能告诉我我做错了什么吗?

例子:


fifthchar("input.txt") ->  skzke akeaa4

def fifthchar(filename):
    newstring = ""
    file = open(filename, 'r')
    for line in filename:
        newstring = newstring + line[4]
    file.close() 
    return newstring

【问题讨论】:

  • 请注意 1)我们没有 input.txt,所以你的例子什么也没告诉我们,2)我们不知道什么是行不通的,因为你没有告诉我们你的观察到这会让你相信有问题。

标签: python string file indexing text


【解决方案1】:

您需要编辑 for 循环,您正在遍历字符串而不是文档。文件而不是文件名。

file = open(filename, 'r')
for line in file:
    newstring = newstring + line[4]

【讨论】:

    【解决方案2】:

    您的代码的一个问题是它不检查当前行的长度。如果该行实际上没有 5 个字符,这将导致问题。您还需要记住,\n 也算作一个字符。试试这个:

    newstring = ""
    for line in filename:
        stripped_line = line.rstrip()
        if len(stripped_line) >= 5:
            newstring = newstring + stripped_line[4]
    

    【讨论】:

    • @don'ttalkjustcode 那是什么错误? OP 没有提供错误,我的回答修复了我提到的那个
    • 您的代码的一个问题是它不检查当前行的长度。 没有当前行。 filename 不是文件,而是字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多