grep用的少,不熟悉,给个find的你参考一下吧
#!/usr/bin/env python3.6
import os
import sys
def find(args=sys.argv):
ignore = '-i' in args
dirname = '.' if args[1].startswith('-') else args[1]
fname = args[args.index('-name')+1].strip('"\'')
for r, ds, fs in os.walk(dirname):
for fn in fs:
if fn == fname or (ignore and fn.lower() == fname.lower()):
print(os.path.join(r, fn))
def main():
find()
if __name__ == '__main__':
main()
追问但他显示这样啊
Traceback (most recent call last):
File "/Users/liuzhenyu/Documents/Untitled.py", line 19, in
main()
File "/Users/liuzhenyu/Documents/Untitled.py", line 16, in main
find()
File "/Users/liuzhenyu/Documents/Untitled.py", line 8, in find
dirname = '.' if args[1].startswith('-') else args[1]
IndexError: list index out of range
>>>
追答#!/usr/bin/env python3.6
import os
import sys
def find(args=sys.argv):
ignore = '-i' in args
try:
dirname = '.' if args[1].startswith('-') else args[1]
fname = args[args.index('-name')+1].strip('"\'')
except IndexError:
print(f'Usage:\n{" "*4}python3 {args[0]} -name a.txt')
return
for r, ds, fs in os.walk(dirname):
for fn in fs:
if fn == fname or (ignore and fn.lower() == fname.lower()):
print(os.path.join(r, fn))
def main():
find()
if __name__ == '__main__':
main()
追问File "Untitled.py", line 12
print(f'Usage:\n{" "*4}python3 {args[0]} -name a.txt')
这个a.txt只是随便举个例而已 不用带入的吧
追答是的
追问如何用终端把这个函数调处来?