如何使用Python递归对包含子文件夹的文件夹中的文件名进行排序

时间:2019-02-22 15:58:53

标签: python-3.x databricks

我是Python的新手,正在使用Databricks。我有一个包含多个子文件夹的文件夹,其中包含文件名类似于以下文件的文件:

(staenv) C:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack>python
Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 13:35:33) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
>>> db = mysql.connector.connect(
...     host="localhost",user="root",password="MySQL.2019",database="alex")
>>>
>>> cursor = db.cursor()
>>> cursor.execute("SELECT * FROM reservations")
>>> myresult = cursor.fetchall()
>>> for x in myresult:
...   print(x)
...
(1, 'red', datetime.datetime(2018, 8, 8, 12, 0), None)
(2, 'red', datetime.datetime(2018, 8, 8, 12, 0), None)
>>>

如何从文件名中提取两个整数,并以这种方式使用它们进行排序:

jest.useFakeTimers()

contactForm.trigger("submit");
await wrapper.vm.$nextTick();
// then
jest.runTimersToTime(2000)
expect(wrapper.vm.validForm).toEqual(true);

我尝试了以下代码,但无法获得预期的输出:

Input (A_B)
=====
1_1.json.gz
1_22.json.gz
7_33.json.gz
1_4.json.gz
2_1.json.gz
2_22.json.gz
9_33.json.gz
2_4.json.gz

我再次有一个类似的问题是否也可以帮到我,那就太好了,所以在上面的输入中,将下划线之前的整数视为``A'',下划线之后的整数视为``B''以及您帮助的输出我是按(B Asc,A Desc)排序。如何在B,A或B Desc和A Ascn上排序?我可以使用相同的气泡排序算法吗? – 如果我有字符串..该如何排序,该如何代替整数呢?

1 个答案:

答案 0 :(得分:0)

尝试以下气泡排序算法:

def custom_bubble_sort(arr):
    def swap(i, j):
        arr[i], arr[j] = arr[j], arr[i]

    def getFirstNum(st):
        return int(st.split(".")[0].split("_")[0])

    def getSecondNum(st):
        return int(st.split(".")[0].split("_")[1])

    n = len(arr)
    swapped = True

    x = -1
    while swapped:
        swapped = False
        x = x + 1
        for i in range(1, n-x):


            if getSecondNum(arr[i - 1]) > getSecondNum(arr[i]):
                swap(i - 1, i)
                swapped = True
            elif getSecondNum(arr[i - 1]) == getSecondNum(arr[i]):
                if getFirstNum(arr[i - 1]) < getFirstNum(arr[i]):
                    swap(i - 1, i)
                    swapped = True

    return arr



a = ['1_1.json.gz',
    '1_22.json.gz',
    '7_33.json.gz',
    '1_4.json.gz',
    '2_1.json.gz',
    '2_22.json.gz',
    '9_33.json.gz',
    '2_4.json.gz']

print(custom_bubble_sort(a))