小编blo*_*m17的帖子

Python电子邮件解析问题

所以我正在尝试在python中编写一个脚本,该脚本登录到我的gmail帐户,然后很快在GUI中告诉我该消息是什么.我稍后会对代码做更多的事情,使它有点程序更有用但是现在我只是能够解析我得到的原始信息.这是我的代码:

#Read Email Script
import imaplib
import email

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('username@gmail.com', 'passwordgoeshere')
mail.list()
mail.select("INBOX") # connect to inbox.


result, data = mail.search(None, "ALL")

ids = data[0]
id_list = ids.split()
latest_email_id = id_list[-1]

result, data = mail.fetch(latest_email_id, '(RFC822)')

raw_email = data[0][1]

email_message = email.message_from_string(raw_email)

print (email_message['Subject'])
Run Code Online (Sandbox Code Playgroud)

现在基本上应该尝试读出发送到我收件箱的最新电子邮件的主题.但是,我在控制台中收到以下错误消息:

>>> 
Traceback (most recent call last):
  File "C:/Users/Dhruvin Desai/Documents/Python/script.py", line 21, in <module>
    email_message = email.message_from_string(raw_email)
  File "C:\Python33\lib\email\__init__.py", line 40, in message_from_string
    return Parser(*args, **kws).parsestr(s)
  File "C:\Python33\lib\email\parser.py", line 69, in parsestr
    return self.parse(StringIO(text), …
Run Code Online (Sandbox Code Playgroud)

python gmail parsing smtplib python-3.x

12
推荐指数
1
解决办法
6875
查看次数

如何只grep每个地址之一.Linux的

好的,让我说我有一个文本文件中的地址列表,如下所示:

https://www.amazon.com
https://www.google.com
https://www.msn.com
https://www.google.com
https://www.netflix.com
https://www.amazon.com
...
Run Code Online (Sandbox Code Playgroud)

那里有很多其他东西,但基本上我遇到的问题是在运行之后:

grep "https://" addresses.txt | cut -d"/" -f3

我两次获得amazon.com和google.com.我想只让他们一次.我不知道如何只针对那些独特的东西进行搜索.

linux bash shell grep

2
推荐指数
1
解决办法
1107
查看次数

弄清楚Linux中剩余的时间

好吧,我所处的情况是,我想弄清楚在2013年5月15日这个特定日期之前剩下多少天.日期并不重要,但想法是弄清楚剩下的天数在到达那天之前.

我想做这样的事情(伪代码):

y=$end_year-$cur_year

if [ y -ge 1 ]; then
   days=$y*365
else
     continue
fi

if [ $end_month -gt $cur_month ]; then
     m=$end_month-$cur_month
else
     contine
fi

if [ $end_day -gt $cur_day ]; then
    d=$end_day-$cur_day
else
    continue
fi

result=$days+$m+$d
Run Code Online (Sandbox Code Playgroud)

现在我不知道是否有更简单的方法可以做到这一点,因为我对Linux和shell脚本非常陌生,所以如果有更好的方法可以帮助我.

unix linux shell

1
推荐指数
1
解决办法
872
查看次数

Perl:子例程输出显示之前需要

我对perl完全不熟悉,现在我真的陷入了这个(可能非常简单)的问题.问题本身就是简单的输出问题,我得到的结果应该是它们之前.这是我写的代码:

sub above_average
{
        my $average = &average(@_);

        foreach my $thing (@_)
        {
                if ($thing > $average)
                {
                        print $thing;
                }
        }

}

my @fred = &above_average(1..10);

print "\@fred is @fred\n";
print "(Should be 6 7 8 9 10)\n";
Run Code Online (Sandbox Code Playgroud)

我运行代码时得到的结果是:

678910@fred is 
(Should be 6 7 8 9 10)
Run Code Online (Sandbox Code Playgroud)

它应该看起来像@fred is 6 7 8 9 10而不是678910@fred is.我只是不知道如何解决它,我已经好几个小时已经没有运气了.

linux perl

1
推荐指数
1
解决办法
32
查看次数

将Month String转换为Integer Shell

好的,所以我运行openssl命令来获取过期脚本的日期.这样做给了我这个:

enddate=Jun 26 23:59:59 2012 GMT
Run Code Online (Sandbox Code Playgroud)

然后我把所有东西都切掉,然后离开这个月是"君"

现在,我的脚本的下一部分是告诉用户证书是否已过期,为此我使用if语句,它看起来像这样:

if [ $exp_year -lt $cur_year && $exp_month -lt $cur_month ]; then
    echo "" 
    echo "Certificate is still valid until $exp_date"
    echo "" 
else
    echo ""
    echo "Certificate has expired on $exp_date, please renew."
    echo ""
fi
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何将月份转换为整数甚至进行比较.我想做蛮力的方式是这样的:

Jan=01
Feb=02
Mar=03
...
Run Code Online (Sandbox Code Playgroud)

很明显,这是一种可怕的方式.有谁知道我能做什么?

bash shell openssl date certificate

0
推荐指数
1
解决办法
4664
查看次数

从文本文件中检索信息.Linux的

基本上我试图从三个文本文件中读取信息,其中包含唯一信息.

文本文件的设置方式如下:

textA.txt
----------------
something.awesome.com
something2.awesome.com
something3.awesome.com
...

textB.txt
----------------
123
456
789
...

textC.txt
----------------
12.345.678.909
87.65.432.1
102.254.326.12
....
Run Code Online (Sandbox Code Playgroud)

现在,当我输出类似这样的东西时它看起来像什么

something.awesome.com : 123 : 12.345.678.909
something2.awesome.com : 456 : 87.65.432.1
something3.awesome.com : 789 : 102.254.326.12
Run Code Online (Sandbox Code Playgroud)

我现在尝试的代码是这样的:

for each in `cat site.txt` ; do
    site=`echo $each | cut -f1`

    for line in `cat port.txt` ; do
        port=`echo $line | cut -f1`

        for this in `cat ip.txt` ; do
            connect=`echo $this | cut -f1`

            echo "$site : $port : $connect"
        done …
Run Code Online (Sandbox Code Playgroud)

unix linux bash shell scripting

0
推荐指数
1
解决办法
150
查看次数

Grep一件事然后从下面的线切割

好的,所以我无法弄清楚这一点.就像我使用grep以获取某些信息的文件一样,它设置如下.

#aaaa
<numbers 123456>

blah
blah
blah

#bbbb
<numbers 2156488>

blah
blah
blah

#cccc
<numbers 5478624>

blah
blah
blah
Run Code Online (Sandbox Code Playgroud)

我做的是我greping为aaaabbbbcccc和我真正需要的信息是数字.就像aaaa我想要获得的东西一样,只是它下方的数字.在这种情况下它会123456

我知道如何grep,aaaa但我不知道如何去下一行并削减数字.

linux bash shell scripting grep

0
推荐指数
1
解决办法
5239
查看次数

SQL检索基于多个表的名称

所以我有三张桌子.CUSTOMER(CustomerID,LastName,FirstName),PURCHASE(PurchaseID,ItemName)和TRANSACTION(CustomerID,PurchaseID,Date).

我遇到的问题是我需要获得专门购买"Paint"和"Books"两个项目的客户的全名,但是当我运行我的代码时,没有任何问题出现.这是我有的:

SELECT CUSTOMER.FirstName, CUSTOMER.LastName
FROM CUSTOMER, PURCHASE
WHERE PURCHASE.Item = 'Paint' AND PURCHASE.Item = 'Books'
GROUP BY CUSTOMER.LastName, CUSTOMER.FirstName;
Run Code Online (Sandbox Code Playgroud)

请帮助,我真的很新,我真的很想得到一些帮助.

sql database oracle

0
推荐指数
1
解决办法
70
查看次数

Python逐列读取文本文件

所以我有一个看起来像这样的文本文件:

1,989785345,"something 1",,234.34,254.123
2,234823423,"something 2",,224.4,254.123
3,732847233,"something 3",,266.2,254.123
4,876234234,"something 4",,34.4,254.123
...
Run Code Online (Sandbox Code Playgroud)

我正在运行此代码:

file = open("file.txt", 'r')
readFile = file.readline()

lineID = readFile.split(",")
print lineID[1]
Run Code Online (Sandbox Code Playgroud)

这让我可以通过","分解我的文本文件中的内容,但是我想要做的是将它分成列,因为每行中都有大量的ID和其他内容.我如何将文本文件拆分成列并逐个调用列中的每一行?

python file-io split

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

linux ×5

shell ×5

bash ×4

grep ×2

python ×2

scripting ×2

unix ×2

certificate ×1

database ×1

date ×1

file-io ×1

gmail ×1

openssl ×1

oracle ×1

parsing ×1

perl ×1

python-3.x ×1

smtplib ×1

split ×1

sql ×1