将字符串连接到input()的结果上

1 投票
3 回答
754 浏览
提问于 2025-04-16 16:48

我想在命令行里做类似这样的事情:

Enter input filename: filename

当用户指定文件名时,应该发生这样的事情

lines = [line.strip() for line in open('filename.txt')]

我试过用

lines = [line.strip() for line in open('input().txt')]

但是它只是找一个叫 'input().txt' 的文件

我该怎么才能让它正常工作呢?

谢谢

3 个回答

1

试试这个:

lines = [ line.strip() for line in open(raw_input("Enter input filename: ")) ]
2

试着格式化这个字符串:

open('{0}.txt'.format(input(), 'r'))

你不能直接在字符串里面调用一个函数,所以你必须先调用这个函数,然后再用它的结果来生成字符串。

4

你需要把 input() 放在引号外面,然后用 + 操作符把它和 '.txt' 连接起来。此外,把获取文件名、打开文件和读取文件的操作分成几行写,会让你的代码更清晰。

filename = input()
with open(filename + '.txt', 'r') as f:
    lines = [line.strip() for line in f]

另外,如果你不是在用 Python 3,那么你可能是想用 raw_input 而不是 input

撰写回答