【Python爬虫】03作业

一、作业内容:习题13-17解包、参数、文件读写
习题13.
使用import语句用于导入其他模块代码,被引用模块中的代码和变量对该程序可见。

from sys import argv
script, first, second, third = argv

print("The script is called:", script)
print("Your first variable is:", first)
print("Your second variable is:", second)
print("Your third variable is:", third)

结果:

C:\ProgramData\Anaconda3\python.exe E:/pyproject/ex13.py first, second, third
The script is called: E:/pyproject/ex13.py
Your first variable is: first,
Your second variable is: second,
Your third variable is: third

Process finished with exit code 0

值得注意:argv解包,在pycharm中需要通过Edit Configurations中的script parameter中输入被解包的内容。

习题14.
使用input来通过键盘输入问题,使用>来作为提示符,将用户提示符设计为变量prompt,这样无需在每次用到input时重复输入提示符。

from sys import argv

script, user_name = argv
prompt = '>'

print("Hi %s, I'm the %s script." % (user_name, script))
print("I'd like to ask you a few questions.")
print("Do you like me %s?" % user_name)
likes = input(prompt)

print("WHere do you live %s" % user_name)
lives = input(prompt)

print("What kind of computer do you have?")
computer = input(prompt)

print("""
Alright, so you said %r about liking me.
You live in %r. Not sure where that is.
And you have a %r computer. Nice.
""" % (likes, lives, computer))

结果:

C:\ProgramData\Anaconda3\python.exe E:/pyproject/ex14.py user_name
Hi user_name, I'm the E:/pyproject/ex14.py script.
I'd like to ask you a few questions.
Do you like me user_name?
>yes
WHere do you live user_name
>America
What kind of computer do you have?
>Tandy

Alright, so you said 'yes' about liking me.
You live in 'America'. Not sure where that is.
And you have a 'Tandy' computer. Nice.


Process finished with exit code 0

如果将prompt变量改成不同的内容,每次将出现新赋予的变量符。"""用于定义多行字符串。
习题15
读取文件,这里涉及两个文件,一个是ex15.py,另外一个是ex15_sample.txt,第二个文件是供脚本读取的文本文件。
file_name='test.txt'
with open(file_name,'w',encoding='utf-8') as file:
file.write('text.txt')
file.write('\n')
file.write('test1.txt')
file.write('\n')
在这几习题中要弄懂如何读取文件,采用open(文件名)命令打开你要读取的文件,并用txt.read()来执行读取。

from sys import argv
script, filename = argv
txt = open(filename)
print("Here's your file %r:" % filename)
print(txt.read())
print("Type the filename again:")
file_again = input(">")
txt_again = open(file_again)
print(txt_again.read)

结果:

C:\ProgramData\Anaconda3\python.exe E:/pyproject/ex15.py ex17.txt
Here's your file 'ex17.txt':
from sys import argv
from os.path import exists
script, from_file, to_file = argv

print("Copying from %s to %s" % (from_file, to_file))
# we could do these two on one line too, how?
in_file = open(from_file)
indata = in_file.read()

print("The input file is %d bytes long" % len(indata))

print("Ready, hit RETURN to continue, CTR_C to abort.")

input()

out_file = open(to_file, 'w')
out_file.write(indata)

print("Alright, all done.")

out_file.close()
in_file.close()
Type the filename again:
>ex17.txt
<built-in method read of _io.TextIOWrapper object at 0x00000000003BAB40>

Process finished with exit code 0

注意:from sys import argv中的sys 是一个代码库,这句话的意思是从库里取出argv这个功能。
习题16
读取文件,记住各种文件的相关命令。
close()关闭文件
read()读取文件内容。
readline()读取文件的每一行。
truncate()清空文件
write(stuff)将stuff写入文件。

from sys import argv

script, filename = argv

print("We're going to erase %r." % filename)
print("If you don't want that, hit CTRL-C (^C).")
print("If you do want that, hit RETURN.")

input("?")
print("Opening the file...")
target = open(filename, 'w')

print("Truncating the file. Goodbye!")
target.truncate()

print("Now I'm going to ask you for three lines.")

line1 = input("line1:")
line2 = input("line2:")
line3 = input("line3:")

print("I'm going to write these to the file.")

target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")
print("And finally, we close it.")
target.close()

结果:

C:\ProgramData\Anaconda3\python.exe E:/pyproject/ex16.py ex17.txt
We're going to erase 'ex17.txt'.
If you don't want that, hit CTRL-C (^C).
If you do want that, hit RETURN.
?
Opening the file...
Truncating the file. Goodbye!
Now I'm going to ask you for three lines.
line1:To all the people out there.
line2:I say I don't like my hair.
line3:I need to shave it off.
I'm going to write these to the file.
And finally, we close it.

Process finished with exit code 0

习题17
将一个文件的内容拷贝到另外一个文件中。

from sys import argv
from os.path import exists
script, from_file, to_file = argv

print("Copying from %s to %s" % (from_file, to_file))
# we could do these two on one line too, how?
in_file = open(from_file)
indata = in_file.read()

print("The input file is %d bytes long" % len(indata))
print("Does the output file exist? %r" % exists(to_file))
print("Ready, hit RETURN to continue, CTR_C to abort.")

input()

out_file = open(to_file, 'w')
out_file.write(indata)

print("Alright, all done.")

out_file.close()
in_file.close()

在运行上面代码时遇到了很大的困难,这一章节理解起来很吃力,不爽。在argv的解包中需要将列表内容逐一呈现出来。用pycharm 涉及到先读取,读取之后再改变其中copy的变量,在写入新变量。
inputFile = open("inputFile.txt", "r")
print("Name of the input file:", inputFile.name;)

outputFile = open(""onputFile.txt", "a"");
print("Name of the output file:", outputFile.name;)

allLines = inputFile.readlines();
for eachLine in allLines:
print("current line content:%s" % (eachline);)
outputFile.write(eachLine);
inputFile.close()
outputFile.close()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容