ファイルパスを取得するPythonスクリプト:引用符内に結果を挿入します。フルパスは取得されますが、引用符はありません。

ファイルパスを取得するPythonスクリプト:引用符内に結果を挿入します。フルパスは取得されますが、引用符はありません。

geditで開かれたテキストファイルのフルパスをコピーするPythonスクリプトがあります。

#!/usr/bin/env python3

import subprocess
import sys

name = subprocess.check_output(["xdotool", "getactivewindow", "getwindowname"]).decode("utf-8").strip()
if all(["(" in name, ")" in name]):
    path = name[name.find("(")+1:name.find(")")]
    if sys.argv[1] == "-file":
        fname = name[:name.find("(")]
    elif sys.argv[1] == "-path":
        fname = ""
    command = f"echo \"{path}/{fname}\" | tr -d '\\n' | sed 's/.$//' | xclip -selection clipboard"
    subprocess.Popen(["/bin/bash", "-c", command])

ただし、結果は引用符で囲まれません。/path/to/file代わりに私は得ます。"path/to/file"

引用符で結果を取得するには、スクリプトをどのように編集する必要がありますか?

ベストアンサー1

必要なものを得るために、次のbashスクリプトを使用しました。

#!/bin/bash

path=$(xdotool getactivewindow getwindowname | grep -oP '\(\K[^)]+')
path2="${path/#\~/$HOME}"
filename=$(xdotool getactivewindow getwindowname | cut -d"(" -f1 | rev | cut -c2- | rev)


echo "\"$path2/$filename"\" | tr -d '\n' | xclip -selection clipboard

次のように引用符で囲まれたテキストファイルのフルパスを正確に取得します。

"/home/dave/Documents/text file"

おすすめ記事