[英]How do I change the name of a file path correctly in Python?
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". 基本上,这是使任何文件都大写,然后将其放入名为UPPER“文件名”的新文件中。 How do I add the "UPPER" bit into the variable without it being at the very end or very beginning?
如何将“ UPPER”位添加到变量中,而不必在结尾或开头呢? 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
例如,C:/users/me/directory/file.txt将变为C:/users/me/directory/UPPERfile.txt
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
. 使用
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
然后,您也可以查看
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.