亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
123下一頁
最近訪問板塊 發(fā)新帖
查看: 6585 | 回復(fù): 20
打印 上一主題 下一主題

【求助】Perl按固定長(zhǎng)度分割文本 [復(fù)制鏈接]

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-04 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-12-30 19:28 |只看該作者 |倒序?yàn)g覽
第一行獻(xiàn)給論壇里的大神!
第二行開始是正文···
我有一個(gè)out.txt的文檔,里面的內(nèi)容是這樣的:
CGAAGGGACTATATCTAGTCCCTTGGTGCAATTACGTAATCTCATTTATAATGATTGATATTATGAGAAAAATACATGAATTTTTCACTTGTAGTCGTGATTGGTGGATATTCAACAAGACTAATGTATGCAATTTGTTAATAAGCTTTTTTGGAAAACATCTGTGGTAGAAATAGGGCAAGCATGCTTGTGTACTTCCTTAATACGCTATATTCCATGTATCTGCTGGTAGAGTTAGTCCTCCGTAATATCTTCTTATTAGAGAAAATTCAGGATTTATATTCTGTGGTAACGCCATTAGAAGAAGTAATTTCCTGACTTAGATGATTCAGAGAGTATAAGTTCCATTGCTAGGATAGAGTAGATGTAGAGGTGAAAGTCCATGGCTTGATACCATTGATTTATTGTACAATTGTTCTTTAATTTTGGTGCACGACTAAGACCAAATTTTTACTCGTGATTTAATGTTAAGATGAAATTGTTACCTATTGTTTCTGTCCTTGGCTACCTATTCGGCGCTTCGTTTCAGAGCCTGCCAAGTTTCTCTCATAGCATTCTCTTTTCCTCCTTACGGGGTCCTTCATGCCTAAAGATGGAGAGCTAGAGCTGAAAAAACCGATCATTGCTATCCAACGTTACAATACATTCTTGACCCAAATGCAAGATAATATCAGATATGCGGGATATTTTAAAACTGCACATGGTAAAGGGTGTGCCTCTAGAGATACCCGTGATACGTCTTTGGAAAATTATATAGTCACACTGATGGATCAATGAAACTCGTTCCTGAAGATATAGGCAGATTTTAAGGAATGATTTTACCTTCGAAAATAATGGCTTAAAATTGGGTAGCTTTAGAATTTTGCTTATAGATAGAAAAGACGTATGTGCACATGTGATTTCGCAATTAACGGCATCATACGGAATTCGAAACTCCGCTATCTCATTGTTCATATACTTCAGCCAAGATTCTCGTGTTAAGACTTCCAATTTCTTCCAAGCGTTTTTCTTAGGGTTCAAAAGCATGGGTTAAAATGTGTTCATGAAAAGAGAAGTTAAGATCGAATTAGAAATTTTTGAATCTGGTCTTTTTTTGCTTTAAGTCGAAAAATTTAGTACCAGTGTTTTTGCCAGGATCAAAGAAGCTACAAATACCAACGTGATATTGGATCTGTAAAGTATCTACAAGAAATCTGTAGCTAAAAGAAAAATTCTTTTTATTTGATTCCGCTCGACTTTTCGATGGTGCATTGCCGTCTTTTCTCACAAGCATAAGGGCCCATTAGACCCTCGACCTGTTCGGACTCAATGGACCCTAGCGTCCTTGGGATGAGTACAAAACAGTGTCCTGCACTGGGGGACCCAGAGACTCGAGAACTCTGGCCTCTTGTGCTTCGATTATTAGCCGTTGGGCCATCGTATTGCCTTTTCCATAGTGAGAGCTTGCTGAGATTACCGTTCATACACGAATTCGAATCCCTCTTTTGCAAGAGCAAGGGCAGAGGGAGAAAAGAAAAGAGTTTTTCCACATATTTTCCCTCCTTTCCTTCCCATATGATGTTTGCAATATGAAAATATTAACTAAAGATTTATGAATTTGTACCAGTCAACTTGGACAGTGTAAGCCTATACTAAAGTCCAAGAAATTATTGGAAAGAAGTGAAAAACAAACTTTTGATGCATTATTTTGTGAGTTCTGGGTTATCATGGCATTGATGTTTAACGCTTCGGAGAGCTTCACCTGATGTGTTTCGGTGACGAGCTTAACGTTTTTAGCGATCTGTAGCGGCTTGATCATTGCGATTTTTTGATTTAACGTCAAAATTTGCCTAGAGAAACTTAACAAGTCTTCAATTATTGAAATCATTCAAATATATCAGGTAACAATTCAGGTCCATTAATGCATATTTCATTCATTTTAAACTTCATTTGAGGGCGGTTAGAAAAGAGACCCCTGGAAAAAGGACCATTCCCGCAGCAATTTAGGTGAAATTATTGATAACTTATACCCTAAATCTGCAAAGTTGCACCTCTTAAAATCATTTCGAAACTTTCGGGCCGAAAAGCGTGTCGTCCTCCCATTATATGTTTCTTCAACTTTGTTGTAAAGCCTTCGTGTA

想得到如下的效果:按照147個(gè)字母為一組分割這個(gè)文本。PS:實(shí)際的文本是現(xiàn)在這個(gè)好幾百倍長(zhǎng),這只是其中一部分···
效果來了:
>char 1
CGAAGGGACTATATCTAGTCCCTTGGTGCAATTACGTAATCTCATTTATAATGATTGATATTATGAGAAAAATACATGAATT
>char 2
TTTCACTTGTAGTCGTGATTGGTGGATATTCAACAAGACTAATGTATGCAATTTGTTAATAAGCTTTTTTGGAAAACATCTG

大概是這樣的效果,樣本太大,可能所有字母數(shù)加在一起并不是147的整數(shù),如果不是最后的一條也要截出來。

在下不才···本想用統(tǒng)計(jì)所有字母數(shù)再限制循環(huán)次數(shù)配合for循環(huán)了解的···結(jié)果弄巧成拙了···
有沒有大神可以幫我一下
順便告訴我如果數(shù)據(jù)太大perl可以一次全部把數(shù)據(jù)讀出來嗎···

論壇徽章:
145
技術(shù)圖書徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [報(bào)告]
發(fā)表于 2015-12-30 19:47 |只看該作者
substr EXPR,OFFSET,LENGTH

perldoc -f substr

評(píng)分

參與人數(shù) 1信譽(yù)積分 +10 收起 理由
sunzhiguolu + 10 非常感謝您的指點(diǎn), 謝謝您!

查看全部評(píng)分

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-04 06:20:00
3 [報(bào)告]
發(fā)表于 2015-12-30 20:23 |只看該作者
這個(gè)用到了,但是現(xiàn)在文件讀不進(jìn)來,不知道是為什么

回復(fù) 2# jason680


   

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
4 [報(bào)告]
發(fā)表于 2015-12-30 20:24 |只看該作者
最簡(jiǎn)單的辦法就是用 Bio::SeqIO  模塊,讓它幫你控制每行的長(zhǎng)度。

評(píng)分

參與人數(shù) 1信譽(yù)積分 +10 收起 理由
sunzhiguolu + 10 非常感謝您提供的解決方案, 謝謝您!

查看全部評(píng)分

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-04 06:20:00
5 [報(bào)告]
發(fā)表于 2015-12-30 20:26 |只看該作者
這個(gè)我不會(huì)了大神,包的部分沒學(xué)明白。。。

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
6 [報(bào)告]
發(fā)表于 2015-12-30 21:43 |只看該作者
本帖最后由 sunzhiguolu 于 2015-12-30 21:48 編輯

回復(fù) 2# jason680
大神您好, 使用 substr 函數(shù)如何避免 offset 超出文本范圍. 代碼如下:

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. for (my ($sOffset, $sLength, $sCnt, $sStr, $sSection) = (0, 147, 1, <>); $sSection = substr ($sStr, $sOffset, $sLength); $sOffset += $sLength){
  5.         printf "char %d>\n%s\n", $sCnt++, $sSection;
  6. }
復(fù)制代碼
在輸出結(jié)果的時(shí)候, 提示如下錯(cuò)誤:

  1. substr outside of string at ...
復(fù)制代碼

論壇徽章:
2
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-04 06:20:00
7 [報(bào)告]
發(fā)表于 2015-12-30 21:48 |只看該作者
6樓大神你好。⌒〉鸟R上去改程序。

回復(fù) 6# sunzhiguolu


   

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
8 [報(bào)告]
發(fā)表于 2015-12-30 21:49 |只看該作者
munaiyi1234 發(fā)表于 2015-12-30 20:26
這個(gè)我不會(huì)了大神,包的部分沒學(xué)明白。。。


使用 Perl 不會(huì)用包那就是個(gè)悲!

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
9 [報(bào)告]
發(fā)表于 2015-12-30 22:08 |只看該作者
回復(fù) 7# munaiyi1234
我不是什么大神!!! 另外, 代碼部分有問題!!!

   

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
10 [報(bào)告]
發(fā)表于 2015-12-30 22:36 |只看該作者
本帖最后由 sunzhiguolu 于 2015-12-30 22:44 編輯

回復(fù) 7# munaiyi1234
稍微修改了下, 試下:

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my $sStr = <>;
  5. for (my ($sOffset, $sCnt, $sLength, $sStrLength, $sSection) = (0, 0, 147, length ($sStr)); $sStrLength >= $sOffset; $sOffset += $sLength){
  6.         printf "char %d>\n%s\n", ++$sCnt, substr ($sStr, $sOffset, $sLength);
  7. }
復(fù)制代碼
MMMIX 大神提供的解決方案非常棒, 可以學(xué)習(xí)下.
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP