How to manage file paths dynamically in code? - path

So my supervisor (I am a working student) came up to me with the following task:
"Please think of a solution how we can dynamically adapt the file paths in the code when there are changes."
He also said he was thinking of an excel file with file pathes and if there is a change you just change it in the excel file and our codes adapt dynamically this change.
So every file path variable in our code then is just a reference to some excel cell this is doable with openpyxl for me I guess.
But I wanted to ask you guys how your corporation manages these problems and if there might be a more ellegant way to solve this.

Related

Looking to re-name 1000's of code entries/file paths within a folder automatically

I'm looking for a way to mass-rename many, many lines of code that all end in '.ogg' within a folder. There's more then 4,000 entries so annoying to do one-by-one.
The bigger picture is that I downloaded an open-source game that unfortunately doesn't work because a lot of the sound files are in different directiories, like, "sound/monster, sound/machines, sound/robots", but for SOME REASON literally every .ogg file in the code doesn't contain where the sound file actually is. If the correct path is "sound/machines/lightswitch1.ogg" then the code line is "lightswitch1.ogg" and doesn't work. I am looking for a way to simply rename all the offending files to something like "sound/allsounds/[soundname].ogg", then take every sound file and dump it in the "allsounds" folder. I don't need it to be tidy because I'm the only one using it. Thanks!
Edit: I'm also really ignorant about all things code, so I might've missed some obvious solution.
Edit 2: I tried 'Batch Rename' but it doesn't seem to work for search results (what I'm using to see all the darn filepaths. I think it's only for actual files?).

Editing Visio Shape Excel OLE Links

I have a Visio doc that has ~200 links to a collection of Excel spreadsheets. I have the spreadsheets but the Visio links point to a path that is inaccessible. I would like to change these. Using Visio Plan 2.
By a lot of experimenting the only way I could find was to open the doc, tell Visio to update the links, then when it failed go through the links in the convert dialog that appeared.
This dialog isn't very helpful as the file path is all jammed into a small text box with no resizing controls. Fortunately, I could see the end of the filename and that was sufficient for me to determine which file was for each link.
I had to edit each one of these entries individually as one can't group select and edit in this dialog.
Pain that it was, I did get the links hardcoded to another location, so at least that aspect works.
However, I need to have these as a relative location so that the vsd and xls files can travel together and any other user can open the vsd no matter the location, just so the vsd and xls are in the same folder.
I can't find a way to do this. I tried prepending the file name with '..\filename', Visio complained but I went through and edited all of them, saved, but it failed to find them when I re-opened the document.
How can I make a relative path in these? Is there an easier way to edit the links?
Thanks.
Call "Links" window via pane "Tell me what you want to do"

I need to open some files in a folder that contains "RPA" in their name. so how can I do that in automation anywhere?

I am creating a program that opens files in a folder that contains "RPA" in their name. so, how can I do that?
You will use Loop on File in Folder command, and if condition inside the loop to check if the file name includes RPA.
Loop on Files on Folder
If condition $Filename$ includes RPA
Do Something here eg. open program/file command
End If
End Loop
#Shivam,
To get more clarity on your problem statement, you mentioned once that the files are already in PDF.
Are you trying to copy content from PDF to Word? In that case, you could use PDF Integration commands, provided the PDFs are not hand-written or scans. If that is the case, the text extraction might become more unreliable.
A safe bet with Automation Anywhere is to just extract all the text, open a new Word document and paste the content and save file.
Saving all files as word might a little counter-intuitive. You can just use the If statement within your for loop to only process files with "RPA" in their name.
Hope this help. Let us know you go :-)
its pretty simple use includes in your if statement
workbench snapshot

In org-mode, how do I keep the original path to images when using #+INCLUDE:?

I can use:
#+INCLUDE:
to include an org file in another org file, which allows me to assemble, say, a website from various org files. I'm exporting from the C-c C-e exporter in org-mode 7.5.
I could maintain a quite complex publication this way. This modular approach is quite common in, e.g. LaTeX and Texinfo publications.
However, links to images no longer work from the #+INCLUDEd org files. What seems to be happening is that the path to the images is taken as being from the org file that I am exporting from, rather than the actual org file that references the image.
The only ways I can see to resolve this are to:
use a flat file structure; or
make the image path from the referencing file (which I might not know in advance) rather than itself.
Neither of these is really sustainable.
How do I tell org to use the correct image path from its own relevant org file rather than the parent org file?
From what I know of the exporter, INCLUDE files are inserted into the document before export. Therefore the content is part of the document before it starts following paths to reach any links to files (images).
After a bit of testing you likely will need to use absolute file paths. Since you move between Windows and Linux your best bet would be to use a consistent scheme on both starting from your home directory.
Like that you can make the Org link:
[[~/path/to/image.jpg]], which will work on both systems (assuming you have set %HOME% on Windows).
Option 1 is potentially an alternative (although I agree it wouldn't be ideal at all), whereas the second option would have obvious pitfalls if you INCLUDE the file in more than one future document.

Attachment using Editable Email Extension in Jenkins

I am using Editable Email plugin in Jenkins to attach a file with the email. The problem is that the plugin is unable to find the file to attach.
My file structure is like this -
ReportDirectory
workspace
ReportDirectory contains the report which I want to attach. I believe that the base directory for the plugin is the workspace. So I am giving the attachment location as
../ReportDirectory/DemoReport.html.
I have also tried
ReportDirectory/DemoReport.html
and many more options.
Am I doing something wrong?
I figured it out.
The Editable Email plugin uses the Ant File Syntax for locating the attachment. When I took at the documentation for Ant File Syntax ( http://ant.apache.org/manual/dirtasks.html ), it says that
In general, patterns are considered relative paths, relative to a task dependent base directory (the dir attribute in the case of ). Only files found below that base directory are considered. So while a pattern like ../foo.java is possible, it will not match anything when applied since the base directory's parent is never scanned for files.
Since the base directory in this case is the "workspace" and my directory "ReportDirectory" is not located in it so the Ant is not able to access it.
Two solutions exist:
Move the "Report Directory" somewhere in "workspace". I did not prefer this because I did not want to mess up the workspace.
Once the report has been created in "ReportDirectory", use your Ant\MSBuild script to copy it temporarily in the "workspace" and then the Email plugin shall be able to access it by something like **/Report.html or something.
#Amey - thanks for your efforts though :)
Another solution is create a symbolic link from $JENKINS_HOME/jobs/workspace/$workspace_name to the path with your $workspace_name. This way worked for me.
ReportDirectory/DemoReport.html
is the correct way to do it.
Please keep in mind that the path to the file and the file name is case sensitive so I assume your entering the correct name.
One more thing is to check is that the report is actually created and is located at the path mentioned by you.
Another thing you could try
ReportDirectory/*
Jenkins will use the directory available in its workspace.
You can send multiple attachments as below.
reportFolder/html/index.html, screenShotsFolder/screenShots/*.jpg
Simple answer:
Copy your file into the workspace(into your job directory), then under Attachment, just give the file name without any quotation or anything. This will automatically tell Jenkins to pick up your file. That's it!
Pls don't confuse yourself after seeing all the configurations.

Resources