How do I change the name of a file path correctly in Python?

主宰稳场 提交于 2019-12-12 02:12:41

问题


My code

specFileName = input("Enter the file path of the program you would like to capslock: ")



inFile = open(specFileName, 'r')
ified = inFile.read().upper()

outFile = open(specFileName + "UPPER", 'w')
outFile.write(ified)
outFile.close()


print(inFile.read())

This is basically make to take in any file, capitalize everything, and put it into a new file called UPPER"filename". How do I add the "UPPER" bit into the variable without it being at the very end or very beginning? As it won't work like that due to the rest of the file path in the beginning and the file extension at the end. For example, C:/users/me/directory/file.txt would become C:/users/me/directory/UPPERfile.txt


回答1:


Depending on exactly how you're trying to do this, there's several approaches.

First of all you probably want to grab just the filename, not the whole path. Do this with os.path.split.

>>> pathname = r"C:\windows\system32\test.txt"
>>> os.path.split(pathname)
('C:\\windows\\system32', 'test.txt')

Then you can also look at os.path.splitext

>>> filename = "test.old.txt"
>>> os.path.splitext(filename)
('test.old', '.txt')

And finally string formatting would be good

>>> test_string = "Hello, {}"
>>> test_string.format("world") + ".txt"
"Hello, world.txt"

Put 'em together and you've probably got something like:

def make_upper(filename, new_filename):
    with open(filename) as infile:
        data = infile.read()
    with open(new_filename) as outfile:
        outfile.write(data.upper())

def main():
    user_in = input("What's the path to your file? ")
    path = user_in # just for clarity
    root, filename = os.path.split(user_in)
    head,tail = os.path.splitext(filename)
    new_filename = "UPPER{}{}".format(head,tail)
    new_path = os.path.join(root, new_filename)
    make_upper(path, new_path)



回答2:


Look into the methods os.path.split and os.path.splitext from the os.path module.

Also, quick reminder: don't forget to close your "infile".



来源:https://stackoverflow.com/questions/23748796/how-do-i-change-the-name-of-a-file-path-correctly-in-python

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!