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

时间:2011-05-02 04:06:16

标签: python command-line-arguments

我想在命令行中执行以下操作:

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 个答案:

答案 0 :(得分:4)

您需要input()在引号之外,然后使用'.txt'运算符将其与+连接起来。此外,它还可以提高代码的清晰度,以获取文件名,打开文件,并在单独的行中读取文件。

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

此外,如果您不使用Python 3,则可能意味着raw_input而不是input

答案 1 :(得分:2)

尝试格式化字符串:

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

您无法直接在字符串内部调用函数,因此必须先调用该函数,然后在结果周围生成字符串。

答案 2 :(得分:1)

试试这个:

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