"TypeError: Can' T convert 'int' object to str implizit" Versuchen, umbenennen von Dateien in Python ist3

Schrieb ich die folgende Funktion zum umbenennen einer Reihe von JPGs. Sie kommen aus der scanner wie eine fortlaufende Nummer, aber ich muss wissen, was die Vorder-und Rückseite jedes Dokument ist (in JPG-form). Wie ich wählte, um dies zu tun ist, machen Sie ein Ende in Einem, und das eine Ende in B. Zum Beispiel:

  • 00001.jpg wird 00001B.jpg
  • 00002.jpg wird 00001A.jpg
  • 00003.jpg wird 00002B.jpg
  • 00004.jpg wird 00002A.jpg

Dies ist, weil der scanner hat ein eigenartiges Verhalten, bei dem die Rückseite gescannt wird, bevor die vor jedem Dokument.

Schrieb ich die folgende Funktion, um diese zu bewältigen:

def make_page_denotation(rename_directory, extension, rename_files):
    for filename in glob(rename_files):
        sequential_number = int(filename[-9:-4])
        if sequential_number & 1 == True:
            os.rename(filename, filename.replace(str(sequential_number), str(sequential_number) + "B"))

        if sequential_number & 1 == False:
            os.rename(filename, filename.replace(int(sequential_number), int(sequential_number) - 1))
            os.rename(filename, filename.replace(str(sequential_number), str(sequential_number) + "A"))

Aber, ich erhalte die folgende Fehlermeldung:

> Traceback (most recent call last):
  File "imageqa.py", line 311, in <module>
    imageqa_misc.make_page_denotation(rename_directory, extension, rename_files)
  File "/home/mylan/workspace/Working/Image-QA/imageqa_misc.py", line 68, in make_page_denotation
    os.rename(filename, filename.replace(int(sequential_number), int(sequential_number) - 1))
TypeError: Can't convert 'int' object to str implicitly

Ich kann nicht herausfinden, für das Leben von mir, warum dies geschieht. Ich bin noch neu in Python und die Programmierung im Allgemeinen, und Schreibe eine Reihe von Skripten, um mir zu helfen im täglichen Leben "einzutauchen" so dass jede Hilfe wäre sehr geschätzt werden! Die ungeraden test (Erster block) funktioniert perfekt, auf seine eigene, so dass ich nicht sicher bin, wie ich es vermasselte den zweiten block.

Schreibe einen Kommentar