在python中使用find命令时是否可以不在双引号中查找字符?

在python中使用find命令时是否可以不在双引号中查找字符?,python,find,command,Python,Find,Command,我有一个文件,我想在其中找到一些特殊字符(\*)的索引。此字符可能出现在文件中的多个位置。例如: 你好\*这是一个文件*/ 打印“早上好” 我想使用find命令只在双引号外而不是双引号内查找\*的索引。有没有办法在python中实现这一点 我知道find返回找到的第一个字符的索引,但是我有一个for循环来检查这个字符并打印索引。但我希望每当它在双引号中遇到这个字符/*时,它应该跳过这个字符,继续查找文件中的下一个字符。str1='hello\*这是一个文件*/' str1 = 'hello \*

我有一个文件,我想在其中找到一些特殊字符(\*)的索引。此字符可能出现在文件中的多个位置。例如:

你好\*这是一个文件*/

打印“早上好”

我想使用find命令只在双引号外而不是双引号内查找\*的索引。有没有办法在python中实现这一点

我知道find返回找到的第一个字符的索引,但是我有一个for循环来检查这个字符并打印索引。但我希望每当它在双引号中遇到这个字符/*时,它应该跳过这个字符,继续查找文件中的下一个字符。

str1='hello\*这是一个文件*/'
str1 = 'hello \*this is a file*/'
str2 = 'print "good\* morning"'


def find_index(_str):
    is_in_quotes = 0
    idx = 0
    while idx < len(_str):
        if _str[idx] == '"':
            is_in_quotes = 1 - is_in_quotes
        elif not is_in_quotes:
            if _str[idx: idx+2] == '\*':
                return idx
        idx += 1
    return -1

print(find_index(str1))
print(find_index(str2))
str2='打印“早上好”' def find_索引(_str): _在_引号中=0吗 idx=0 而idx
如果没有找到,函数将返回-1


让我知道它是否满足您的所有需要。

我尝试了这段代码,但当字符位于双引号之外时,它也会返回/*的索引。基本上,我有一个文件名为abc.txt。因此,我使用open('abc.txt').read()函数读取此文件中的数据,并为其分配一个变量。say data=open('abc.txt').read()。现在我需要检查数据内部的条件。我想检查/*是否在双引号内,然后返回索引。如果它在外双引号,则返回-1。我尝试了这个字符串“hello/*这是一个文件*/”,它返回-1,我想它是对的,你的字符串是什么,告诉我,我将为你测试它。#获得三个测试分数round1=int(原始输入()输入第1轮的分数:“))第2轮=//int(原始输入(“输入第2轮的分数”))第3轮=int(原始输入(“输入第3轮的分数”)。*/计算平均分数=(第1轮+第2轮+第3轮)/3#打印测试分数打印“平均分数为://*“,平均/这是我的文件。对于秒//它应该返回-1。您可以将此处的字符从/更改为/。很抱歉,我犯了一个错误,这次我将对其进行修改并尝试。它应该总是idx+=1而不是2……它仍然不工作。使用您提供的更新函数,它将返回双引号字符内外的索引。行round1=int(原始输入(“输入第//1:”)应返回-1,因为//位于双引号内。它应该返回行round2=//int(原始输入(“输入第二轮的分数:”)的索引号,因为//在双引号之外。