Python:如果遇到lin中的字符,如何转到下一行

2024-06-17 15:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python做一些I/O。从文件中读取时,我希望程序忽略该行的其余部分,如果遇到分号(;),则转到下一行。我有下面的代码,但只有当我的行以分号开头时才有效,而当分号是行中的其他位置时则不行。请帮忙,谢谢。 澄清:我想把每一行不带分号的部分逐行写入一个新文件。基本上,我想创建一个新文件,其中没有“;我想忽略这一点”。在

def ignoreSemi():
    for line in f:
        for char in line:
            if char == ";":
                line = next(f)

Tags: 文件代码in程序forifdefline
3条回答

只需用分号分隔行并处理第一部分:

def ignoreSemi():
    for line in f:
        part = line.strip().split(';')
        do_something(part[0])

你的问题不太清楚。您想对分号之前的字符执行一些有用的操作吗?如果是,考虑使用线.分割(“;”)并对返回列表的第一个成员进行操作。如果没有,请尝试使用类似以下内容:

def ignoreSemi():
    for line in f:
        if ";" not in line:
            [rest of loop here]

你可以使用生成器,后半部会产生部分行前的分号

def after_semi(input):
    for line in input:
        yield line.split(';')[0]

with open('output', 'w') as f:
    for line in after_semi(input):
        f.write('%s\n', line)

相关问题 更多 >