解决了以下我的答案,对于任何可能觉得有用的人.
我有两个脚本a.py和b.py. 在我当前的目录"C:\ Users\MyName\Desktop\MAIN"中,我运行> python a.py.
第一个脚本a.py在我当前的目录中运行,对一堆文件执行某些操作,并使用这些文件的编辑版本创建一个新目录(testA),这些文件同时移动到该新目录中.然后我需要为testA中的文件运行b.py.
作为一个初学者,我只是将我的b.py脚本复制并粘贴到testA中并再次执行命令"> python b.py",它在这些新文件上运行一些命令并创建另一个包含这些编辑文件的文件夹(testB).
我试图消除等待a.py完成的麻烦,移动到新目录,粘贴b.py,然后运行b.py. 我正在尝试编写一个执行这些脚本的bash脚本,同时维护我的目录层次结构.
#!/usr/bin/env bash
python a.py && python b.py
Run Code Online (Sandbox Code Playgroud)
脚本a.py运行顺利,但b.py根本不执行.没有关于b.py失败的错误消息,我只是认为它无法执行,因为一旦完成a.py,该新目录中就不存在b.py. 我可以在b.py中添加一个小脚本,将其移动到新目录中吗?我实际上尝试过更改b.py目录路径,但它不起作用.
例如在b.py中:
mydir = os.getcwd() # would be the same path as a.py
mydir_new = os.chdir(mydir+"\\testA")
Run Code Online (Sandbox Code Playgroud)
我在b.py中的所有实例中都将mydirs更改为mydir_new,但这也没有区别......我也不知道如何将脚本移动到bash中的新目录中.
作为文件夹的一个小流程图:
MAIN # main folder with unedited files and both a.py and b.py scripts
|
| (execute a.py)
|
--------testA # first folder created with first edits of files
|
| (execute b.py)
|
--------------testB # final folder created with final edits …
Run Code Online (Sandbox Code Playgroud) 我发现的大多数解决方案都是在数据框中获取唯一项目(我不想要的),或者按明确标题的列计数.
我的数据框如下:
1 2 3 4
ILLU1 ATG --T --- TGG
ILLU2 ATG -CT GGG TGG
ILLU3 ATG TTT AAA TGG
ILLU4 -TG --T --- T-G
Run Code Online (Sandbox Code Playgroud)
我试图获得每行的计数,其中每列具有完整的3碱基序列.因此,如果单元格中存在" - ",则它将为零(这包括"---"," - N"," - NN").
所以我想尝试输出如下:
ILLU1 2
ILLU2 3
ILLU3 4
ILLU4 0
Run Code Online (Sandbox Code Playgroud)
我试过了:
df_new = pd.DataFrame() # to hold the final values
count = 0
for rows in df:
if not sum(df[rows].str.contains("-")) > 0: # if no hyphen present
count += 1 # add to final count
else:
count = …
Run Code Online (Sandbox Code Playgroud)