Если кто-нибудь задается вопросом, как выполнить связанную проблему: «Выбрать столбец частичной строкой»
Использовать:
df.filter(like='hello') # select columns which contain the word hello
И выбирать строки путем частичного совпадения строк, передать axis=0
для фильтрации:
# selects rows which contain the word hello in their index label
df.filter(like='hello', axis=0)
Если все остальное не удалось, вы можете использовать два разных имени файла, например props-default.properties
внутри myJar.jar
и props.properties
, чтобы переопределить в командной строке. В вашем коде вы сначала попробуете загрузить файл props.properties
и откиньтесь на props-default.properties
, если он не был найден.
Я уверен, что слишком поздно для ответа, но может быть интересным для гуглеров этот небольшой помощник фрагмента кода для загрузки файла свойств из любого места в пути к классам.
ClassLoader cl = ClassLoader.getSystemClassLoader();
if (cl != null) {
URL url = cl.getResource(CONF_PROPERTIES);
if (url == null) {
url = cl.getResource("/" + CONF_PROPERTIES);
}
if (url != null) {
try {
InputStream in = url.openStream();
props = new Properties();
props.load(in);
} catch (IOException e) {
// Log the exception
} finally {
// close opened resources
}
}
}
Я не уверен, но может быть: ClassLoader.getResourceAsStream()
EDIT:
Я не думаю, что это существенно отличается от this.getClass().getResourceAsStream()
от вопроса, так как as что вам еще нужно получить ClassLoader, который вы хотите использовать для загрузки ресурса.
Поскольку вы предоставляете ресурс в -classpath
в вашем примере, он должен быть доступен из того же загрузчика классов, что и ваш " основного "класса (в SUN JVM, это sun.misc.Launcher$AppClassLoader
, не уверен, что это может / не измениться для других реализаций JVM).
ClassLoader.getSystemClassLoader()
- как следует из названия, это «босс». других.
– Carl Smotricz
20 July 2010 в 21:48
javadoc для Class.getResourceAsStream()
документирует логику поиска:
Если имя начинается с
'/'
('\u002f'
), то абсолютное имя ресурса - это часть имени, следующего за «/'.. В противном случае абсолютное имя имеет следующую форму:
modified_package_name/name
Если
blockquote>modified_package_name
является имя пакета этого объекта с заменой «/» на'.'
('\u002e'
).Таким образом, имя ресурса, переданное методу, должно выглядеть как
/com/package/p2/props.properties
, еслиprops.properties
сохраняется в пакетеcom.package.p2
вместо текущего класса.