我根据合同编写一个打开文件夹中文件的程序,将新行添加到列表中并检查重复项(通过每次创建一组原始列表(file_contents)中的列表来完成新条目已添加)。
sort()方法的目的是打开列表full_file_paths中包含的所有文件,并将其内容存储在列表中。但是,我收到错误(如下):
File "line_sort.py", line 24
for entry in L:
^
SyntaxError: invalid syntax
有问题的方法如下:
def sort(directory):
full_file_paths = get_filepaths(directory)
# Go file by file
for path in full_file_paths:
with open(path, "r") as current_file:
L = current_file.read().splitlines()
print (str("Reading " + path)
for entry in L:
file_contents.append(entry.strip())
# Creates a set from the array, which cannot contain duplicates.
file_contents = list(set(file_contents))
我尝试更改数组的名称以考虑保留字,我试图在没有文件打开的情况下遍历列表并且它可以工作。
导致错误的相关行是此方法底部的第4行。我希望能够抓住这个问题,在接下来的时候摆弄这个问题。
感谢您的时间!
答案 0 :(得分:1)
您尚未关闭上一行的括号:
print (str("Reading " + path))
^
仅供参考,您根本不需要致电str()
,因为path
类似str
类型:
print("Reading " + path)
答案 1 :(得分:0)
正如@alecxe所说,你忘记了一个括号......但我宁愿说你忘了避免括号:
print (str("Reading " + path))
^ ^
这些括号无用,因为打印是语句而不是函数(请参阅the doc)。正如@Fred指出的那样,这适用于python版本< 3。
此外,我们在这里看不到get_filepaths
函数,但如果您不确定返回的可迭代路径集是否为字符串,则应仅包装路径强>变量。所以你可以写一下:
print "Reading " + str(path)