我正在尝试格式化以下文件:C:\Users\Johnny\Downloads\Misc\ticket。jpg只打印出文件名和扩展名,但我一直卡住。在Python3中有没有简单的方法可以做到这一点?
import sys
import sqlite3
import os
conn = sqlite3.connect(sys.argv[1], uri=True)
curr = conn.cursor()
dwld = curr.execute("select * FROM downloads")
file_name = curr.execute("select current_path from downloads ORDER BY end_time DESC")
file_result = file_name.fetchone(`
file_no_dir = file_result[0]
path = file_no_dir
# Input
print(os.path.basename(path).split('/')[-1])
预期输出:
ticket.jpg
输出:
C:\Users\Johnny\Downloads\Misc\ticket.jpg
2条答案
按热度按时间k4aesqcs1#
你应该先escape the backslashes。就像这样:
行打印的问题(操作系统)path.basename(path).split('/')[-1])的问题是,您在split()方法中使用了正斜杠(/),而您提供的路径使用了反斜杠()。在Windows上,路径分隔符是反斜杠,因此应该用反斜杠拆分。你可以使用OS。sep. path.sep以获得适合您的平台的分隔符。以下是更正后的行:
一个(更好的)方法是使用
os.path.basename()
,因为它不需要split()
方法。您可以简单地用途:这应该会给予你预期的输出。
将以下内容添加到您的代码示例中:
cngwdvgl2#