我不明白为什么这么简单的东西不是很直观。
这是我到目前为止所做的:
print("Enter name of file on Desktop:")
filename = sys.stdin.readline()
directory = os.path.join(os.path.expanduser("~"),"Desktop")
for subdir, dirs, files in os.walk(directory):
for file in files:
if file.startswith(filename):
f = open(os.path.join(subdir, file),'r+', encoding="Latin-1")
data = f.read()
print(data)
f.close()
为什么我不能传递分配给变量filename的sys.stdin 到'if'陈述:
`if file.startswith(filename):`?
我试过了:
if file.startswith(str(filename)):
if file.startswith("'" + filename + "'")
if file.startswith(filename):
没有选项似乎“通过”并且没有错误弹出。
它只是假装我没有通过任何东西。有帮助吗?感谢。
答案 0 :(得分:2)
无论是从stdin还是从文件读取的行,都包含换行符。您的文件名似乎不太可能以换行符结尾。
但请勿使用sys.stdin.readline
从用户那里获取输入。使用适当命名的input
函数:
filename = input("Enter name of file on Desktop:")
(注意,在Python 2.x中,您应该使用raw_input
而不是input
。)