Python 获取文件路径
Python get filepath
我正在尝试创建一个简单的脚本来将 selected 文件(在 windows 资源管理器中)的文件路径复制到 python 中的剪贴板。
我一直在查看 pyperclip
和 tkinter
,但不确定具体如何进行。
tkinter
中的askopenfilename
貌似很有前途,但我想selectpython外的文件,然后通过[=34=调用脚本] 上下文菜单。
编辑:
我想创建一个脚本,当我使用 windows 上下文菜单(右键单击)复制它时,它可以将本地文件路径更改为网络路径。
例如在 windows 资源管理器中右键单击我的文件 C:\Users\LocalUser\test.txt
时,我想添加一个下拉选项来复制文件路径,但将目录更改为例如D:\Users\LocalUser\test.txt
.
我正在考虑通过在 RegEdit 中添加一个新键并在 Computer\HKEY_CLASSES_ROOT\*\shell
中向 python 脚本添加一个快捷方式来添加上下文菜单选项,但为了这样做,我需要为了能够复制,请先将文件路径添加到我的剪贴板。
你说得对,要在 windows 上下文菜单中添加内容,你需要编辑 windows 注册表编辑器。
要复制剪贴板中的文件位置,您可以使用 pyperclip
但这只能使用 tkinter
来完成:
from tkinter import Tk, filedialog
r = Tk()
r.withdraw()
filename = filedialog.askopenfilename()
#print(filename)
r.clipboard_clear()
r.clipboard_append(filename)
r.update() # now it stays on the clipboard after the window is closed
r.destroy()
你可以做的是,在文件资源管理器中,右键单击,然后在上下文菜单中,会有一个选项(例如,“复制文件的文件位置”),你可以添加使用注册表编辑器。然后单击该选项,将打开另一个 file dialog
,其中您 select 的任何文件的位置都会被复制到剪贴板。
编辑:仅在上下文菜单中添加“复制路径”选项:
在注册表编辑器中,对于文件,在 HKEY_CLASSES_ROOT\*\shell\Copy Path\command
中,对于文件夹,在 HKEY_CLASSES_ROOT\Directory\shell\Copy Path\command
中,通过将(默认)的值设置为
添加以下命令
cmd.exe /c (echo.|set /p=%1) | clip
就是这样,不用python,只使用默认的命令行解释器,就可以把file/folders的完整路径复制到windows.
simple_upload.html
{% extends 'base.html' %}
{% load static %}
{% block content %}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="myfile">
<button type="submit">Upload</button>
</form>
{% if uploaded_file_url %}
<p>File uploaded at: <a href="{{ uploaded_file_url }}">{{ uploaded_file_url }}</a></p>
{% endif %}
<p><a href="{% url 'home' %}">Return to home</a></p>
{% endblock %}
views.py
from django.shortcuts import render
from django.conf import settings
from django.core.files.storage import FileSystemStorage
def simple_upload(request):
if request.method == 'POST' and request.FILES['myfile']:
myfile = request.FILES['myfile']
fs = FileSystemStorage()
filename = fs.save(myfile.name, myfile)
uploaded_file_url = fs.url(filename)
return render(request, 'core/simple_upload.html', {
'uploaded_file_url': uploaded_file_url
})
return render(request, 'core/simple_upload.html')
文件将被复制到base文件夹中,可以通过指定文件夹名称复制到指定文件夹
filename = fs.save('folderName/'+ myfile.name, myfile)
我正在尝试创建一个简单的脚本来将 selected 文件(在 windows 资源管理器中)的文件路径复制到 python 中的剪贴板。
我一直在查看 pyperclip
和 tkinter
,但不确定具体如何进行。
tkinter
中的askopenfilename
貌似很有前途,但我想selectpython外的文件,然后通过[=34=调用脚本] 上下文菜单。
编辑:
我想创建一个脚本,当我使用 windows 上下文菜单(右键单击)复制它时,它可以将本地文件路径更改为网络路径。
例如在 windows 资源管理器中右键单击我的文件 C:\Users\LocalUser\test.txt
时,我想添加一个下拉选项来复制文件路径,但将目录更改为例如D:\Users\LocalUser\test.txt
.
我正在考虑通过在 RegEdit 中添加一个新键并在 Computer\HKEY_CLASSES_ROOT\*\shell
中向 python 脚本添加一个快捷方式来添加上下文菜单选项,但为了这样做,我需要为了能够复制,请先将文件路径添加到我的剪贴板。
你说得对,要在 windows 上下文菜单中添加内容,你需要编辑 windows 注册表编辑器。
要复制剪贴板中的文件位置,您可以使用 pyperclip
但这只能使用 tkinter
来完成:
from tkinter import Tk, filedialog
r = Tk()
r.withdraw()
filename = filedialog.askopenfilename()
#print(filename)
r.clipboard_clear()
r.clipboard_append(filename)
r.update() # now it stays on the clipboard after the window is closed
r.destroy()
你可以做的是,在文件资源管理器中,右键单击,然后在上下文菜单中,会有一个选项(例如,“复制文件的文件位置”),你可以添加使用注册表编辑器。然后单击该选项,将打开另一个 file dialog
,其中您 select 的任何文件的位置都会被复制到剪贴板。
编辑:仅在上下文菜单中添加“复制路径”选项:
在注册表编辑器中,对于文件,在 HKEY_CLASSES_ROOT\*\shell\Copy Path\command
中,对于文件夹,在 HKEY_CLASSES_ROOT\Directory\shell\Copy Path\command
中,通过将(默认)的值设置为
cmd.exe /c (echo.|set /p=%1) | clip
就是这样,不用python,只使用默认的命令行解释器,就可以把file/folders的完整路径复制到windows.
simple_upload.html
{% extends 'base.html' %}
{% load static %}
{% block content %}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="myfile">
<button type="submit">Upload</button>
</form>
{% if uploaded_file_url %}
<p>File uploaded at: <a href="{{ uploaded_file_url }}">{{ uploaded_file_url }}</a></p>
{% endif %}
<p><a href="{% url 'home' %}">Return to home</a></p>
{% endblock %}
views.py
from django.shortcuts import render
from django.conf import settings
from django.core.files.storage import FileSystemStorage
def simple_upload(request):
if request.method == 'POST' and request.FILES['myfile']:
myfile = request.FILES['myfile']
fs = FileSystemStorage()
filename = fs.save(myfile.name, myfile)
uploaded_file_url = fs.url(filename)
return render(request, 'core/simple_upload.html', {
'uploaded_file_url': uploaded_file_url
})
return render(request, 'core/simple_upload.html')
文件将被复制到base文件夹中,可以通过指定文件夹名称复制到指定文件夹
filename = fs.save('folderName/'+ myfile.name, myfile)