当我运行以下代码时
def regEx1():
os.chdir("C:/Users/Luke/Desktop/myFiles")
files = os.listdir(".")
os.mkdir("C:/Users/Luke/Desktop/FilesWithRegEx")
regex_txt = input("Please enter the website your are looking for:")
for x in (files):
inputFile = open((x), encoding = "utf8", "r")
content = inputFile.read()
inputFile.close()
regex = re.compile(regex_txt, re.IGNORECASE)
if re.search(regex, content)is not None:
shutil.copy(x, "C:/Users/Luke/Desktop/FilesWithRegEx")
我收到以下错误消息,指出for循环后的第一行。
^
SyntaxError: non-keyword arg after keyword arg
导致此错误的原因是什么?
答案 0 :(得分:75)
这就是它所说的:
inputFile = open((x), encoding = "utf8", "r")
您已将encoding
指定为关键字参数,但将"r"
指定为位置参数。关键字参数后不能有位置参数。也许你想做:
inputFile = open((x), "r", encoding = "utf8")
答案 1 :(得分:2)
要真正弄清楚这一点,这是我的初学者答案:
您以错误的顺序输入了参数。
关键字参数具有以下样式:
file
应定义一个固定参数:True,False等。 非关键字参数不同:
nullable=True, unique=False
此语法错误要求您首先将name="Ricardo", fruit="chontaduro"
及其所有类型(非关键字)放在 之前,例如name="Ricardo"