我一直在努力使我编写的脚本更简单,更简单.
有许多方法可以编写文件夹中所有文件的字数,甚至是文件夹子目录的所有文件.
例如,我可以写
wc */*
Run Code Online (Sandbox Code Playgroud)
我可能得到这样的输出(这是所需的输出):
0 0 0 10.53400000/YRI.GS000018623.NONSENSE.vcf
0 0 0 10.53400000/YRI.GS000018623.NONSTOP.vcf
0 0 0 10.53400000/YRI.GS000018623.PFAM.vcf
0 0 0 10.53400000/YRI.GS000018623.SPAN.vcf
0 0 0 10.53400000/YRI.GS000018623.SVLEN.vcf
2 20 624 10.53400000/YRI.GS000018623.SVTYPE.vcf
2 20 676 10.53400000/YRI.GS000018623.SYNONYMOUS.vcf
13 130 4435 10.53400000/YRI.GS000018623.TSS-UPSTREAM.vcf
425 4250 126381 10.53400000/YRI.GS000018623.UNKNOWN-INC.vcf
Run Code Online (Sandbox Code Playgroud)
但如果文件太多,我可能会收到如下错误消息:
-bash: /usr/bin/wc: Argument list too long
Run Code Online (Sandbox Code Playgroud)
所以,我可以创建一个变量,一次做一个文件夹,如下所示:
while read $FOLDER
do
wc $FOLDER/* >> outfile.txt
done < "$FOLDER_LIST"
Run Code Online (Sandbox Code Playgroud)
所以这就是从一行到5行.
此外,在一种情况下,我想先使用grep -v,然后进行单词计数,如下所示:
grep -v dbsnp */* | wc
Run Code Online (Sandbox Code Playgroud)
但这会有两个错误:
所以,回顾一下,我希望能够做到这一点:
grep …Run Code Online (Sandbox Code Playgroud) 我已经使用pymouse帮助过去自动化重复游戏并取得成功.
但是,当玩BlueStacks上下载的游戏时,pymouse似乎会移动到屏幕上的正确位置,但之后没有任何点击会"注册".
如果我在操作系统中放置其他原生的东西,则会点击它.我不明白为什么当我将鼠标移动到Bluestacks中正在玩游戏的位置时,点击不会"工作".
这是代码:
from pymouse import PyMouse
import time
m = PyMouse()
i=1
for i in range(1,1000):
time.sleep(2)
x, y = m.position()
print(x, y)
m.click(x,y,1)
i+=1
Run Code Online (Sandbox Code Playgroud)
即使鼠标悬停在Bluestacks的窗口上,这个(下面)也会返回值.
print(m.position())
Run Code Online (Sandbox Code Playgroud) 我正在使用matlab分析大型数据集.我希望能够在这个矩阵上运行fprintf命令行,它有大约22000列.所以,到目前为止我的想法是:
j=22;
for i = 1:j;
fname = fopen(strcat('chr', num2str(i), '.out'), 'r');
A = fscanf(fname, '%d', [1000,inf]);
FIDW = fopen(strcat('chrproc', num2str(i), '.out'), 'w+');
fprintf(FIDW, '%d\t%d\t%d\t%d\t%d\t%d\t\n', B);
end
Run Code Online (Sandbox Code Playgroud)
这个大小的22个文件将通过1-4行转换为矩阵.然而,棘手的部分(至少对我来说)是fprintf要求您提供FORMAT.因为这些文件太大,所以没有真正的方法输入%d\t.
也许fgetl命令更好?但fgetl不打印到文件,更重要的是,fgetl返回一个字符串,这对我来说效果不好.真的,像fscanf命令之类的东西会很棒,除了读取而不是打印...
非常感谢您的帮助和建议.
我有一个表格的数据框:
LociDT4Length
[[1]]
Cohort V1
1: CEU 237
2: Lupus 203
3: RA 298
4: YRI 278
[[2]]
Cohort V1
1: CEU 625
2: Lupus 569
3: RA 1022
4: YRI 762
[[3]]
Cohort V1
1: CEU 161
2: Lupus 203
3: RA 268
4: YRI 285
[[4]]
Cohort V1
1: CEU 1631
2: Lupus 1363
3: RA 1705
4: YRI 1887
Run Code Online (Sandbox Code Playgroud)
几天前,我学会了这个命令:
with(LociDT4Length[[1]], ifelse(Cohort=="RA", V1/62,
ifelse(Cohort=="Lupus", V1/62,
ifelse(Cohort=="CEU", V1/96,
ifelse(Cohort=="YRI", V1/80,NA)))))
Run Code Online (Sandbox Code Playgroud)
适当地返回结果:
[1] 2.468750 3.274194 4.806452 3.475000
Run Code Online (Sandbox Code Playgroud)
但是,我尝试将此语句置于循环中会为每个嵌套的DF返回一个警告,并返回不正确的结果.错误消息是:
1: …Run Code Online (Sandbox Code Playgroud) 像许多人一样,我遇到了让mysql和python一起工作的问题.我的规格是:
OSX10.9.2带有python 2.7.2的Anaconda 1.9.1,虽然2.5和2.6似乎包含在MySQL 5.6.16中
我写了一个python脚本,我尝试导入MySQLdb,或PyMySQL然后MySQLdb,都没有工作.
我读了很多关于堆栈溢出的线程,结果我最终尝试了
$ export CFLAGS=-Qunused-arguments
$ export CPPFLAGS=-Qunused-arguments
$ pip install mysql-python
Run Code Online (Sandbox Code Playgroud)
结果如下.发出致命错误,可以在输出的底部看到.
下载/解压缩mysql-python下载MySQL-python-1.2.5.zip(108kB):108kB下载运行setup.py(路径:/ private/var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip_build_vincent/mysql-python/setup. py)egg_info for package mysql-python
安装收集的软件包:mysql-python运行setup.py install for mysql-python构建'_mysql'扩展/ usr/bin/clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Qunused-arguments -Qunused-arguments - Dversion_info =(1,2,5,'final',1)-D_ version _ = 1.2.5 -I/usr/local/mysql/include -I/Users/vincentlaufer/anaconda/include/python2.7 -c _mysql .c -o build/temp.macosx-10.5-x86_64-2.7/_mysql.o -Os -g -fno-strict-aliasing -arch x86_64在_mysql.c中包含的文件中:29:/ Users/vincent/anaconda/include /python2.7/Python.h:33:10:致命错误:'stdio.h'文件未找到#include ^ 1错误生成.错误:命令'/ usr/bin/clang'失败,退出状态1完成输出命令/ Users/vincentlaufer/anaconda/bin/python -c"import setuptools,tokenize; file ='/ private/var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip_build_vincent/mysql-python/setup.py'; exec(compile(getattr(tokenize,'open',open)(file).read().replace('\ r \n','\n' ),file,'exec'))"install --record /var/folders/lx/h7jq_qx92_j0n7plsjmr6wl40000gp/T/pip-6aqGYj-record/install-record.txt --single-version-external-managed --compile:running安装
运行构建 …
我有以下外观的制表符分隔文件:
12-38070040-39070040 13-92416321-93446176 14-47539055-48560868 14-89244697-90244697 14-90046821-91047886 14-98556636-99556636 15-47718221-48718221
Run Code Online (Sandbox Code Playgroud)
我想替换所有的实例:
选项卡,然后任意两位数,然后是连字符\ t [0-9] [0-9] -
有:
选项卡,然后相同的两个数字,然后冒号\ t相同的两个数字:
12:38070040-39070040 13:92416321-93446176 14:47539055-48560868 14:89244697-90244697 14:90046821-91047886 14:98556636-99556636 15:47718221-48718221
Run Code Online (Sandbox Code Playgroud)
如何使用通配符进行匹配,然后替换匹配,而不是替换通配符?
最后一点,我已经问过,awk '{gsub()}'因为我使用它最多,但是如果有通用的"伪正则表达"可以在大多数环境,大多数文本编辑器等工作,我会很高兴了解到这一点.
如果要制作绘图,并使用text()创建x轴标签,则可以指定字符串旋转或srt参数以及旋转轴标签的数字.例如,srt=45将文本旋转到45度.
说我有31列.如果我希望第一个是水平的,然后让它们逐渐变得更倾斜,最后一个是垂直的,可以想象:
slant=seq(0, -90, -3)
plot(some stuff)
text(x=mid, y=y.min-20, labels=chrs, xpd=TRUE, srt=slant, adj = 1, cex=1)
Run Code Online (Sandbox Code Playgroud)
其中mid,chrs和slant的长度是相同的.
有没有办法实现这个?
我有data.table以下格式的R:
COHORT VARTYPE SUM
1: RA CDS 25
2: RA INTRON 1152
3: RA DONOR 0
4: RA ACCEPTOR 1
5: RA TSS-UPSTREAM 98
---
101: YRI DISRUPT 0
102: YRI UNKNOWN-INC 979
103: YRI MIRB 0
104: YRI PFAM 8
105: YRI CGA_MIRB 0
Run Code Online (Sandbox Code Playgroud)
在COHORT列中,有5个值.他们是RA,Lupus和CEU,YRI和ASW.
我希望DT$SUM根据值的不同,将列除以一个不同的整数DT$COHORT.
特别,
If DT[COHORT=="RA"] then DT$SUM<-(DT$SUM/62)
If DT[COHORT=="Lupus"] then DT$SUM<-(DT$SUM/62)
If DT[COHORT=="YRI"] then DT$SUM<-(DT$SUM/80)
If DT[COHORT=="CEU"] …Run Code Online (Sandbox Code Playgroud)