I will use the sys (System-specific parameters and functions) module which is always available since its used or maintained by the interpreter.
To open a file use of sys.argv
sys.argv
the argv list contains the arguments passed to the script, when the interpreter was started. The first item contains the name of the script itself. (If the name of the script was used to start the program)
I use terminal to start my programs and text-wrangler to write my programs. Therefore to start the program open terminal and navigate to the folder where your program is saved.
Next type $ python the_name_of_your_program the full address of your program
Example
$ python test.py /Desktop/test.txt
Example script for opening and reading a file in python.
from sys import argv
scriptName, fileName = argv
file = open(fileName)
# open(filename, mode) 'r' file will only be read,
# default is 'r' if the mode arguemnt is omitted
# 'w' for only writing. Therefore an existing file with the same name will be
# erased.
# 'a' opens the file for appending, any data written to the file is automatically
# added to the end.
#'r+' opens the file for both rerading and writing.
print file.read()
# file.read(size) this read a quantity of data and
# and returns it as a string. size is an optional numeric argument.
# However when the size is omitted or negative the entire contents of the file
# will open. This could be very problematic if the file is twice as large as your
# machine's memory.
A blog to share my experience with bioinformatics, python, applescript, unix, and Mac osX.
Friday, August 24, 2012
Thursday, August 23, 2012
Dialog boxes in applescript
Dialog boxes are very easy to make in applescript. Script editor comes with a list of commands. hold down control and click on your mouse this menu appears. Go to Dialogs and dialog -2 buttons 2 actions.
This will appear in your script editor.
display dialog "" buttons {"", ""} default button 2
if the button returned of the result is "" then
else
end if
----------------------------
Here is some sample code:
------------------------------
display dialog "Is it the weekend?" buttons {"Yes", "No"} default button 2
if the button returned of the result is "Yes" then
say "awesome"
else
say "BOO"
end if
This is my dialog box:
You can see from this the string between the first "" is the question and I have two buttons for each "" and the button highlight is the second one.
And each button just says either awesome or Boo.
Labels:
applescript,
mac
A large list of Unix commands
!$ prints the everything before the last space on the previous line
pressing up arrow on key board - up one line
& - add to end of any command to make that command run in the background so you can get the prompt back
\ - used as a continuation character
alias - Create an alias
alloc - List used and free memory
awk - Find and Replace text within file(s)
bash - Bourne-Again SHell (Linux)
case - Conditionally perform a command
cat - Display the contents of a file
cd - Change Directory to argument passed. If now argument is passed it will take you back to home directory.
cd.. - back up one directory
chflags - Change a file or folder's flags.
chgrp - Change group ownership
chmod - Change access permissions
chown - Change file owner and group
chroot - Run a command with a different root directory
cksum - Print CRC checksum and byte counts
clear - Clear terminal screen
cmp - Compare two files
command c = stop something running in terminal
comm - Compare two sorted files line by line
complete - Edit a command completion [word/pattern/list]
continue - Resume the next iteration of a loop
cp - Copy one or more files to another location
cron - Daemon to execute scheduled commands
crontab - Schedule a command to run at a later date/time
cut - Divide a file into several parts
date - Display or change the date & time
dc - Desk Calculator
dd - Data Dump - Convert and copy a file
df - Display free disk space
diff - Display the differences between two files
diff3 - Show differences among three files
dirname Convert a full pathname to just a path
dirs Di - play list of remembered directories
diskutil - Disk utilities - Format, Verify, Repair
ditto - Copy files and folders
dscl - Directory Service command line utility
du - Estimate file space usage
echo - Display message on screen
ed - A line-oriented text editor (edlin)
enable - Stop or start printers and classes.
env - Set environment and run a utility
eval - Evaluate several commands/arguments
exec - Execute a command
exit - Exit the shell
expect - Programmed dialogue with interactive programs
expand - Convert tabs to spaces
pressing up arrow on key board - up one line
& - add to end of any command to make that command run in the background so you can get the prompt back
\ - used as a continuation character
alias - Create an alias
alloc - List used and free memory
awk - Find and Replace text within file(s)
bash - Bourne-Again SHell (Linux)
basename - Convert a full pathname to just a folder path
bless - Set volume bootability and startup disk options.
break - Exit from a loop
bless - Set volume bootability and startup disk options.
break - Exit from a loop
cal - Display a calendar
case - Conditionally perform a command
cat - Display the contents of a file
cd - Change Directory to argument passed. If now argument is passed it will take you back to home directory.
cd.. - back up one directory
chflags - Change a file or folder's flags.
chgrp - Change group ownership
chmod - Change access permissions
chown - Change file owner and group
chroot - Run a command with a different root directory
cksum - Print CRC checksum and byte counts
clear - Clear terminal screen
cmp - Compare two files
command c = stop something running in terminal
comm - Compare two sorted files line by line
complete - Edit a command completion [word/pattern/list]
continue - Resume the next iteration of a loop
cp - Copy one or more files to another location
cron - Daemon to execute scheduled commands
crontab - Schedule a command to run at a later date/time
cut - Divide a file into several parts
date - Display or change the date & time
dc - Desk Calculator
dd - Data Dump - Convert and copy a file
df - Display free disk space
diff - Display the differences between two files
diff3 - Show differences among three files
dirname Convert a full pathname to just a path
dirs Di - play list of remembered directories
diskutil - Disk utilities - Format, Verify, Repair
ditto - Copy files and folders
dscl - Directory Service command line utility
du - Estimate file space usage
echo - Display message on screen
ed - A line-oriented text editor (edlin)
enable - Stop or start printers and classes.
env - Set environment and run a utility
eval - Evaluate several commands/arguments
exec - Execute a command
exit - Exit the shell
expect - Programmed dialogue with interactive programs
expand - Convert tabs to spaces
false - Do nothing, unsuccessfully
fdisk - Partition table manipulator for Darwin UFS/HFS/DOS
find - Search for files that meet a desired criteria
fmt - Reformat paragraph text
fold - Wrap text to fit a specified width
for - Expand words, and execute commands
foreach - Loop, expand words, and execute commands
fsck - Filesystem consistency check and repair
fs - usage Filesystem usage (process/pathname)
ftp - Internet file transfer program
GetFileInfo - Get attributes of HFS+ files
getopt - Parse positional parameters
goto - Jump to label and continue execution
grep - Search file(s) for lines that match a given pattern
groups - Print group names a user is in
gzip - Compress or decompress files
head - Display the first lines of a file
example (displays the first 20 lines of output.json file and writes them to turn_in.json:
hdiutil - Manipulate iso disk images history - Command History
hostname - Print or set system name
id - Print user and group names/id's
if - Conditionally perform a command
info - Help info
install - Copy files and set attributes
jobs - List active jobs
join - Join lines on a common field
kill - Stop a process from running
less - Display output one screen at a time (very useful for very big files)
ln - Make links between files (hard links, symbolic links)
locate - Find files
logname - Print current login name
login - log into the computer
logout - Exit a login shell (bye)
lpr - Print files
lprm - Remove jobs from the print queue
lpstat - Printer status information
ls - List information about file(s)
ls -a - shows hidden directories also (files that start with .)
fdisk - Partition table manipulator for Darwin UFS/HFS/DOS
find - Search for files that meet a desired criteria
fmt - Reformat paragraph text
fold - Wrap text to fit a specified width
for - Expand words, and execute commands
foreach - Loop, expand words, and execute commands
fsck - Filesystem consistency check and repair
fs - usage Filesystem usage (process/pathname)
ftp - Internet file transfer program
GetFileInfo - Get attributes of HFS+ files
getopt - Parse positional parameters
goto - Jump to label and continue execution
grep - Search file(s) for lines that match a given pattern
groups - Print group names a user is in
gzip - Compress or decompress files
head - Display the first lines of a file
example (displays the first 20 lines of output.json file and writes them to turn_in.json:
hdiutil - Manipulate iso disk images history - Command History
hostname - Print or set system name
id - Print user and group names/id's
if - Conditionally perform a command
info - Help info
install - Copy files and set attributes
jobs - List active jobs
join - Join lines on a common field
kill - Stop a process from running
less - Display output one screen at a time (very useful for very big files)
ln - Make links between files (hard links, symbolic links)
locate - Find files
logname - Print current login name
login - log into the computer
logout - Exit a login shell (bye)
lpr - Print files
lprm - Remove jobs from the print queue
lpstat - Printer status information
ls - List information about file(s)
ls -a - shows hidden directories also (files that start with .)
lsbom - List a bill of materials file
lsof - List open files
man - Help manual
mkdir - Create new folder(s)
mkfifo - Make FIFOs (named pipes)
more - Display output one screen at a time
mount - Mount a file system
mv - Move or rename files or directories
net - Manage network resources
nice - Set the priority of a command
nohup - Run a command immune to hangups
onintr - Control the action of a shell interrupt
open - Open a file/folder/URL/Application
osascript - Execute AppleScript
paste - Merge lines of files
pbcopy - Copy data to the clipboard
pbpaste - Paste data from the Clipboard
pico - Simple text editor
ping - Test a network connection
pmset - Power Management settings
popd - Restore the previous value of the current directory
pr - Convert text files for printing
printenv - Print environment variables (if no variable is present this command will print all environment variable set)
printf - Format and print data
ps - Process status
PS1=" " - customize terminal prompt
example:
pushd - Save and then change the current directory
lsof - List open files
man - Help manual
mkdir - Create new folder(s)
mkfifo - Make FIFOs (named pipes)
more - Display output one screen at a time
mount - Mount a file system
mv - Move or rename files or directories
net - Manage network resources
nice - Set the priority of a command
nohup - Run a command immune to hangups
onintr - Control the action of a shell interrupt
open - Open a file/folder/URL/Application
osascript - Execute AppleScript
paste - Merge lines of files
pbcopy - Copy data to the clipboard
pbpaste - Paste data from the Clipboard
pico - Simple text editor
ping - Test a network connection
pmset - Power Management settings
popd - Restore the previous value of the current directory
pr - Convert text files for printing
printenv - Print environment variables (if no variable is present this command will print all environment variable set)
printf - Format and print data
ps - Process status
PS1=" " - customize terminal prompt
Between quotation marks add the following lines to customize your terminal prompt
\d -current date
\t - current time
\h - host name
\# - command number
\u -user name
\W -Current working directory (example: desktop)
\w - Current working directory, full path (example /Users/Admin/Desktop)
pwd - Print Working Directory
pydoc - use to access python's tool for viewing and generating python documentation.
q - quit exit program
repeat - Execute a command multiple times
rm - Remove files
rmdir - Remove folder(s)
rpm - Remote Package Manager
rsync - Remote file copy - Sync file tree (also RsyncX)
say - Convert text to audible speech
q - quit exit program
repeat - Execute a command multiple times
rm - Remove files
rmdir - Remove folder(s)
rpm - Remote Package Manager
rsync - Remote file copy - Sync file tree (also RsyncX)
say - Convert text to audible speech
sched - Schedule a command to run at a later time.
screencapture - Capture screen image to file or disk sdiff - Merge two files interactively
security - Administer Keychains, keys, certificates and the Security framework
sed - Stream Editor
set - Set a shell variable = value
setenv - Set an environment variable = value
setfile - Set attributes of HFS+ files
shift - Shift positional parameters
shutdown - Shutdown or restart OS X
sleep - Delay for a specified time
softwareupdate - System software update tool
sort - Sort text files
split - Split a file into fixed-size pieces
stop - Stop a job or process
su - Substitute user identity
sudo - Execute a command as another user
sum - Print a checksum for a file
switch - Conditionally perform a command
tar - Tape ARchiver
tee - Redirect output to multiple files
test - Condition evaluation
time - Measure Program Resource Use
touch - Change file timestamps
traceroute - Trace Route to Host
tr - Translate, squeeze, and/or delete characters
true - Do nothing, successfully
tty - Print filename of terminal on stdin
type - Describe a command
umount - a device
unalias - Remove an alias
uname - Print system information
unexpand - Convert spaces to tabs
uniq - Uniquify files
units - Convert units from one scale to another
unset - Remove variable or function names
unsetenv - Remove environment variable
users - Print login names of users currently logged in
uuencode - Encode a binary file
uudecode - Decode a file created by uuencode
where - Report all known instances of a command
which - Locate a program file in the user's path
while - Execute commands
who - Print all usernames currently logged on
whoami - Print the current user id and name (`id -un')
screencapture - Capture screen image to file or disk sdiff - Merge two files interactively
security - Administer Keychains, keys, certificates and the Security framework
sed - Stream Editor
set - Set a shell variable = value
setenv - Set an environment variable = value
setfile - Set attributes of HFS+ files
shift - Shift positional parameters
shutdown - Shutdown or restart OS X
sleep - Delay for a specified time
softwareupdate - System software update tool
sort - Sort text files
split - Split a file into fixed-size pieces
stop - Stop a job or process
su - Substitute user identity
sudo - Execute a command as another user
sum - Print a checksum for a file
switch - Conditionally perform a command
tar - Tape ARchiver
tee - Redirect output to multiple files
test - Condition evaluation
time - Measure Program Resource Use
touch - Change file timestamps
traceroute - Trace Route to Host
tr - Translate, squeeze, and/or delete characters
true - Do nothing, successfully
tty - Print filename of terminal on stdin
type - Describe a command
umount - a device
unalias - Remove an alias
uname - Print system information
unexpand - Convert spaces to tabs
uniq - Uniquify files
units - Convert units from one scale to another
unset - Remove variable or function names
unsetenv - Remove environment variable
users - Print login names of users currently logged in
uuencode - Encode a binary file
uudecode - Decode a file created by uuencode
where - Report all known instances of a command
which - Locate a program file in the user's path
while - Execute commands
who - Print all usernames currently logged on
whoami - Print the current user id and name (`id -un')
passwd - Modify a user password
quota - Display disk usage and limits
rcp - Copy files between machines.
tail - Output the last part of files
umask - Users file creation mask
vi - Text Editor
wc - Print byte, word, and line counts
xargs - Execute utility - passing arguments
yes - Print a string until interrupted
Labels:
mac
Saturday, July 14, 2012
(*
My program SNP Compare was written for bioinformatics. It compares a patient file to a relatives file. This program takes a column in excel file1 and sees if it is in a column in excel file2. If the answer is found it will copy a field in excel file2 in the same row the answer was found in.
Example data:
------------------------
File one:
Column of data column to paste answer
10
29
7
2
105
102
110
111
------------------------
File two:
Column of data The answer to be copied to file one
29 found row 2
10 found row 3
7 found row 4
2 found row 5
205 found row 6
202 found row 7
210 found row 8
------------------------
File 1 after my program
Column of data Paste answer here
10 found row 3
29 found row 2
7 found row 4
2 found row 5
105 no
102 no
110 no
111 no
------------------------
*)
--opens File1. Names it patientName
set patientFile to choose file with prompt "Please select the patient Excel file:"
set patientName to name of (info for patientFile)
tell application "Microsoft Excel"
open patientFile
set thepatientFile to workbook patientName
end tell
--This Dialog assigns where the data is stored for file1
display dialog "What Column is your patient SNP data of the " & " " & patientName & " "& "excel file?" default answer "" buttons {"submit"} default button 1
set PatientSNPCol to (text returned of the result)
--This Dialog assigns what row your data starts at for file1
display dialog "What row does your patient SNP data start in the " & " " & patientName &" " & "excel file?" default answer "" buttons {"submit"} default button 1
set patientSNPRow to (text returned of the result)
set patientStartCell to PatientSNPCol & patientSNPRow
--This Dialog assigns the last row of data for file1
display dialog "What row is the last row of you patient SNP data start of the " & " " &patientName & " " & "excel file?" default answer "" buttons {"submit"} default button 1
set patientLastRow to (text returned of the result)
set patientLastCell to PatientSNPCol & patientLastRow
--This Dialog assigns the location of the data copied from file2
display dialog "What column would you like the results of this program stored in of the"& " " & patientName & " " & "excel file." default answer "" buttons {"submit"} default button 1
set resultsLocation to (text returned of the result)
--opens File2. Names it relativeName
set relativeFile to choose file with prompt "Please select the relative Excel file:"
set relativeName to name of (info for relativeFile)
tell application "Microsoft Excel"
open relativeFile
set therelativeFile to workbook relativeName
end tell
--This dialog assigns the column of data in file2
display dialog "What Column is your relative SNP data of the " & " " & relativeName & " "& "excel file?" default answer "" buttons {"submit"} default button 1
set relativeSNPCol to (text returned of the result)
--This dialog assigns the column of data begining copied to excel file1.
display dialog "What Column contains the data you would like copied to the " & " " &patientName & " " & "excel file in column" & " " & resultsLocation & " " & "?" default answer "" buttons {"submit"} default button 1
set copyAnswer to (text returned of the result)
--This repeat loop makes the way down the column
repeat with thisRow from patientSNPRow to patientLastRow
tell application "Microsoft Excel"
activate object workbook patientName
set theRange to PatientSNPCol & thisRow & ":" & PatientSNPCol & thisRow
set theValue to (get value of range theRange as list)
set theAnswer to resultsLocation & thisRow & ":" & resultsLocation & thisRow
set relativeSearchRange to (relativeSNPCol & ":" & relativeSNPCol)
copy value of cell theRange to numberOfCellToSearch
set searchTerm to numberOfCellToSearch
activate object workbook relativeName
set searchRange to get range relativeSearchRange of active sheet
set foundSNPCellAddress to ""
set foundCells to {}
try
set foundSNPInRelative to (find searchRange what searchTerm)
set foundSNPCellAddress to get address foundSNPInRelative
end try
--If data is not found a no will be placed on file1
if foundSNPCellAddress = "" then
tell application "Microsoft Excel"
activate object workbook patientName
set value of cell theAnswer to "no"
end tell
else
--If data is found the value of data in an assigned column will be copied to a column in file1
tell application "Microsoft Excel"
activate object workbook patientName
set theStr to foundSNPCellAddress
set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to "$"
set theSubStr to (text item 3 of theStr) as text
set AppleScript's text item delimiters to tid
set copyResult to copyAnswer & theSubStr & ":" & copyAnswer & theSubStr
activate object workbook relativeName
copy value of cell copyResult to cellCopy
activate object workbook patientName
set value of cell theAnswer to cellCopy
end tell
end if
end tell
end repeat
Labels:
applescript,
bioinformatics,
mac
Subscribe to:
Posts (Atom)