Files

knitr::opts_chunk$set(echo = TRUE, comment = "#>")

Here are some useful things which filesstrings makes easier than base or fs.

First let's load the library:

library(filesstrings)

Remove spaces from file names

"A space in your file name is a hole in your soul." - Jenny Bryan

remove_filename_spaces(replacement = "_") replaces them all with underscores for all files in a directory. By default, they are replaced with nothing.

file.create(c("file 1.txt", "file 2.txt"))
remove_filename_spaces(pattern = "txt$", replacement = "_")
list.files(pattern = "txt$")
file.remove(list.files(pattern = "txt$"))  # clean up

Messed up file numbering

The microscope I use numbers files with 3 numbers by default, i.e. file001.tif, file002.tif and so on. This is a problem when the automatic numbering passes 1000, whereby we have file999.tif, file1000.tif. What's the problem with this? Well, sometimes you need alphabetical order to reflect the true order of your files. These file numbers don't satisfy this requirement:

file.names <- c("file999.tif", "file1000.tif")
sort(file.names)

so file1000.tif comes before file999.tif in alphabetical order. The function nice_nums() returns the names that we'd like them to have:

nice_nums(file.names)

The function nice_file_nums applies such renaming to all the files in an entire directory. It wraps nice_nums.

The name of a file without the extension

before_last_dot("spreadsheet_92.csv")

Ensure that a file name has a given extension

Add a file extension if needed:

give_ext("xyz", "csv")

If the file name has the correct extension already, it's left alone:

give_ext("xyz.csv", "csv")  

Change a file extension:

give_ext("abc.csv", "txt")  # tack the new extension onto the end
give_ext("abc.csv", "txt", replace = TRUE)  # replace the current extension


Try the filesstrings package in your browser

Any scripts or data that you put into this service are public.

filesstrings documentation built on Feb. 16, 2023, 7:25 p.m.