Как насчет этого:
df = pd.DataFrame(data = {'A': [1,2,3],
'B': ['a b c d', 'e f g h', 'i j k l']})
y = lambda x : df.loc[df['A']==2,'B'].str[0:2*x+2] + df.loc[df['A']==2,'B'].str[-1]
df.loc[df1['A']==2,'B'] = y(1)
Тогда df
находится в розыске:
A B
0 1 a b c d
1 2 e f h
2 3 i j k l
Вы могли использовать sh& (или безотносительно оболочки, которую Вы хотите использовать) вместо xterm&
Или Вы могли также изучить использование псевдонима (если бы Ваша оболочка поддерживает это) так, чтобы Вы остались бы в контексте текущей оболочки.
newgrp
команда может только значительно использоваться от интерактивной оболочки, AFAICT. На самом деле я разочаровался в нем о... хорошо, скажем, достаточно долго назад, что замена, которую я записал, теперь имеет право голосовать и в Великобритании и в США.
Отметьте это newgrp
специальная команда, 'встроенная в' оболочку. Строго, это - команда, которая является внешней к оболочке, но оболочка имеет встроенное знание о том, как обработать его. Оболочка на самом деле exec
программа, таким образом, Вы получаете новую оболочку сразу впоследствии. Это - также корневая программа setuid. На Солярисе, по крайней мере, newgrp
также, кажется, игнорирует переменную Среды оболочки.
У меня есть множество программ, которые работают вокруг проблемы это newgrp
был предназначен для обращения. Помните, команда предшествует способности пользователей принадлежать нескольким группам сразу (см. Руководства Unix Версии 7). С тех пор newgrp
не обеспечивает механизм для выполнения команд после того, как он выполнится, в отличие от этого, su
или sudo
, Я записал программу newgid
который, как newgrp
, корневая программа setuid и позволяет Вам переключаться от одной группы на другого. Это довольно просто - просто основной () плюс ряд стандартизированных используемых функций сообщения об ошибке. Свяжитесь со мной (сначала, точка в последний раз в Gmail отмечает точкой com) для источника. Мне также назвали намного более опасную команду'asroot
'это позволяет мне (но только мне - при компиляции по умолчанию) настраивать пользователя и списки группы намного более тщательно.
asroot: Configured for use by jleffler only
Usage: asroot [-hnpxzV] [<uid controls>] [<gid controls>] [-m umask] [--] command [arguments]
<uid controls> = [-u usr|-U uid] [-s euser|-S euid][-i user]
<gid controls> = [-C] [-g grp|-G gid] [-a grp][-A gid] [-r egrp|-R egid]
Use -h for more help
Option summary:
-a group Add auxilliary group (by name)
-A gid Add auxilliary group (by number)
-C Cancel all auxilliary groups
-g group Run with specified real GID (by name)
-G gid Run with specified real GID (by number)
-h Print this message and exit
-i Initialize UID and GIDs as if for user (by name or number)
-m umask Set umask to given value
-n Do not run program
-p Print privileges to be set
-r euser Run with specified effective UID (by name)
-R euid Run with specified effective UID (by number)
-s egroup Run with specified effective GID (by name)
-S egid Run with specified effective GID (by number)
-u user Run with specified real UID (by name)
-U uid Run with specified real UID (by number)
-V Print version and exit
-x Trace commands that are executed
-z Do not verify the UID/GID numbers
Mnemonic for effective UID/GID:
s is second letter of user;
r is second letter of group
(Эта программа выросла: если бы я был восстанавливающий его с нуля, то я принял бы идентификатор пользователя или имя пользователя, не требуя различных букв опции; так же для идентификатора группы или названия группы.)
Это может быть хитро для получения разрешения установить корневые программы setuid. Существуют некоторые обходные решения, доступные теперь из-за средств мультигруппы. Одна техника, которая может работать, состоит в том, чтобы установить setgid, обдумал каталоги, где Вы хотите созданные файлы. Это означает, что независимо от того, кто создает файл, файл будет принадлежать группе, которая владеет каталогом. Это часто достигает эффекта, в котором Вы нуждаетесь - хотя я знаю о немногих людях, которые последовательно используют это.