Reputation: 15
First of all, I am a beginner in the Linux environment
I have used the command below in python to open the Telegram Desktop in the Windows 10 environment and it works correctly:
subprocess.Popen('C:\\Users\\username\\AppData\\Roaming\\Telegram Desktop\\Telegram.exe')
But now I want to do the same thing in python but in the Ubuntu environment. I have used the command below to do it but it does not work:
subprocess.Popen('\\home\\username\\snap\\telegram-desktop\\2551\\.local\\share\\TelegramDesktop')
Error = "No such a file or directory"
Maybe I have a problem with the installation path for the telegram. Consider that I found the path using <locate> command in terminal
Upvotes: 0
Views: 541
Reputation: 1398
Because of historical reasons, Windows uses the backslash symbol (\
) as the path separator, while Linux/UNIX systems use the forward-slash (/
).
When a path begins with /
, it is interpreted as an absolute path, otherwise, it is treated as a relative one (if it contains at least one forward-slash) or as a command which can be found by the PATH
environment variable.
When you write
subprocess.Popen('\\home\\username\\snap\\telegram-desktop\\2551\\.local\\share\\TelegramDesktop')
Python tries to find a file in the PATH
with has this big 70-characters long name. If you want to specify an absolute file path instead, you should do
subprocess.Popen('/home/username/snap/telegram-desktop/2551/.local/share/TelegramDesktop')
If this still throws the FileNotFound
exception, it's most likely that you have just specified a wrong file path. If you're having the Permission Denied error, you might not have the executing permission for this file (learn more by searching for "Linux execute permission")
Upvotes: 0
Reputation: 83557
Unix uses /
as a path separator. You have \\
instead which makes this look like one long file name, not a path.
Upvotes: 1