【问题标题】:How to import a list of file in Python using raw_input [closed]如何使用 raw_input 在 Python 中导入文件列表 [关闭]
【发布时间】:2013-08-22 17:46:32
【问题描述】:

我希望导入文件列表,例如:

'E:\\mytest\\test_00.txt'
'E:\\mytest\\test_01.txt'
'E:\\mytest\\test_02.txt'


INPUT_txt = raw_input("Input File(s): ")
element = map(str, INPUT_txt.split(","))
for filename in element:
    print os.path.abspath(filename)
    print os.path.isfile(filename)

我得到了这个结果

E:\\mytest\\test_00.txt
True    
C:\PythonScript\ E:\\mytest\\test_01.txt
False    
C:\PythonScript\ E:\\mytest\\test_02.txt
False

只有第一个文件 (test_00.txt) 为 True,因为它位于正确的目录中

【问题讨论】:

  • print INPUT_txt 返回什么?
  • 您有问题吗?一个问题?您已经向我们展示了一些代码和一些输出,但仍然不清楚您在问什么。
  • 如果您的输入中有空格,那很可能是您的问题。您以逗号分隔,因此文件名保留空格。
  • 有办法解决这个问题吗?带和不带空格的导入?提前致谢
  • @AshwiniChaudhary 抱歉 print INPUT_txt 在哪里?

标签: python input directory raw-input os.path


【解决方案1】:

您不需要map(str, INPUT_txt.split(",")) - 元素已经是字符串。除此之外,它只是通过去除空格来清理拆分文件名的问题。

INPUT_txt = raw_input("Input File(s): ")
element = [ss for ss in (s.strip() for s in INPUT_txt.split(",")) if ss]
for filename in element:
    print os.path.abspath(filename)
    print os.path.isfile(filename)

【讨论】:

  • 我在整理帖子时不小心输入了“strip”而不是“split”。现在修好了。
  • 感谢现在效果很好!
【解决方案2】:

试试这个:

import os

INPUT_txt = raw_input("Input File(s): ")
element = map(str, INPUT_txt.split(","))
for filename in element:
    print filename
    print os.path.isfile(filename)

注意您使用的分隔符(在您的情况下为“,”),例如输入序列:

Input file(s): ..\\file1.txt,C:\\file2.txt,results\\file3.txt

将生成正确的输出,而:

Input file(s): ..\\file1.txt, C:\\file2.txt , results\\file3.txt

不会。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多