我正在尝试从命令行参数指定的目录中读取文件。命令行:
./printfiles.py ./test_dir
到目前为止,我的代码是:
#!/usr/bin/env python3
import os
import sys
input_dir=argv[1]
for file in os.listdir(input_path):
with open(file, "r") as f:
for line in f.readlines():
print(line)
我遇到了错误:
FileNotFoundError: [Errno 2] No such file or directory: 'hello.txt'
我认为问题是因为os.listdir()仅返回文件名,而不返回路径。我对如何执行此操作感到困惑,因为该路径仅由用户指定。
答案 0 :(得分:1)
我认为问题是因为os.listdir()仅返回文件名,而不是路径。
我认为你是对的。
您可以使用os.path.join
为open
提供文件的完整路径:
with open(os.path.join(input_dir, file), "r") as f: