【问题标题】:Python - Bubble sorting data from an external text file [closed]Python - 来自外部文本文件的冒泡排序数据[关闭]
【发布时间】:2013-02-07 08:43:52
【问题描述】:

我开发了一个简单的冒泡排序算法,当变量 myList = 说,[1,4,2,3,5] 时有效,但我需要从外部文本文件加载文本。这就是我所拥有的。

#New Bubble sort
f = open('Users/Luke/Dropbox/Programming/numbers.txt', 'r')
my_list = f.read()
print(my_list)
length = len(my_list)

for i in range(length):
    for j in range(length-1):
        if my_list[j] > my_list[j+1]:
            my_list[j], my_list[j+1] = my_list[j+1], my_list[j]
            print(my_list)

f.close()

这会给我带来:

FileNotFoundError: [Errno 2] No such file or directory: 'Users/Luke/Dropbox/Programming/numbers.txt'  

该目录确实存在,并且我尝试了不同的变体(反斜杠/前斜杠,包括“C:/”)等。

【问题讨论】:

  • 请注意您没有解析“numbers.txt”文件。您最好将它们解析为仅包含 ints 的列表:',' 是否大于 '1'
  • 看起来像 Os X 路径,对吧?

标签: python algorithm file text bubble-sort


【解决方案1】:

你错过了第一个'/' /Users/Luke/Dropbox/Programming/numbers.txt

【讨论】:

  • 我解决了这个问题,得到了同样的错误。我要补充一点,我尝试在 Linux 中打开一个文本文件并且它有效。 windows下打开文本文件有特殊协议吗?
【解决方案2】:

你需要反斜杠而不是这样的正斜杠:

file = open('C:\\Users\\Luke\\Dropbox\\Programming\\numbers.txt' ,'r')

而且由于反斜杠是转义字符,所以需要加两个(第一个转义第二个)

【讨论】:

  • Windows 也可以读取正斜杠,这样更容易看懂......自己测试一下。
  • @InbarRose,我没有意识到这一点。对可移植性有意义。谢谢。
【解决方案3】:

你可能需要这样的东西:

'C:\\Users\\Luke\\Dropbox\\Programming\\numbers.txt'

或者

r'C:\Users\Luke\Dropbox\Programming\numbers.txt'

记住'\' 是 Python 中的转义字符。

【讨论】:

    【解决方案4】:

    要获得文件的绝对确定路径:

    • 转到文件,ctrl+右键单击,然后选择“复制为路径” 从菜单中。

    • 或打开文件属性并获取其文件夹名称,然后您 可以将其名称组合在一起形成完整路径。

    • 或者你可以创建一个快捷方式,然后查看属性 查看目标位置的快捷方式。

    • 或者您可以将文件拖到打开的控制台中,然后查看显示的路径 向上。

    换句话说,这不应该是一个确定的问题......

    要在您的程序中处理这个问题,以防它可以输入,请检查os.path.exists(path)

    【讨论】:

      【解决方案5】:

      你应该使用 os.path 具体来说:os.path.join 此函数为您处理路径分隔符,因此它始终是正确的,独立于操作系统。

      喜欢:

      从操作系统导入路径
      my_path = path.join('Users', 'Luke', 'Dropbox', 'Programming', 'numbers.txt')

      有关详细信息,请参阅: http://docs.python.org/2/library/os.path.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 1970-01-01
        • 2013-06-28
        • 2015-03-01
        • 1970-01-01
        • 2021-06-29
        • 1970-01-01
        相关资源
        最近更新 更多