文件处理家庭作业帮助
文件处理
文件是停留在计算机存储设备中的一些信息或数据。您已经知道不同类型的文件,如您的音乐文件,视频文件,文本文件。 Python为您提供操作这些文件的简单方法。通常我们将文件分为两类,即文本文件和二进制文件。文本文件是简单的文本,因为二进制文件包含只能被计算机读取的二进制数据。
文件打开
要打开一个文件,我们使用open()函数。它需要两个参数,首先是文件路径或文件名,第二个应该打开哪种模式。模式就像
“r” – >打开只读,你可以读取文件,但不能编辑/删除任何内容
“w” – >打开写入电源,意味着如果文件存在然后删除所有内容并打开它写入
“a” – >以附加模式打开
默认模式是只读的,即如果您不提供任何模式,它将以只读方式打开该文件。让我们打开一个文件
>>> fobj = open(“love.txt”)
>>> fobj
<_io.TextIOWrapper name =’love.txt’mode =’r’encoding =’UTF-8′>
关闭文件
打开文件后,应始终关闭打开的文件。我们使用close()方法。
>>> fobj = open(“love.txt”)
>>> fobj
<_io.TextIOWrapper name =’love.txt’mode =’r’encoding =’UTF-8′>
>>> fobj.close()
重要
重要
始终确保您明确关闭每个打开的文件,一旦它的工作完成,你没有理由保持打开。因为 – 程序可以打开的文件数量有上限。如果超过这个限制,则没有可靠的恢复方式,所以程序可能会崩溃。 – 每个打开的文件都会占用与其相关联的数据结构的一些主内存,如文件描述符/句柄或文件锁等。因此,如果您有更多的文件打开,这些文件无效,那么基本上可以浪费大量的内存,可用 – 打开文件总是有机会损坏和数据丢失。
阅读文件
要立即读取整个文件,请使用read()方法。
>>> fobj = open(“sample.txt”)
>>> fobj.read()
“我喜欢Python \ nPradeepto爱KDE \ nSankarshan喜欢Openoffice \ n’
如果再次调用read(),它将返回空字符串,因为它已经读取整个文件。 readline()可以帮助您每次从文件中读取一行。
>>> fobj = open(“sample.txt”)
>>> fobj.readline()
“我喜欢Python \ n”
>>> fobj.readline()
“Pradeepto爱KDE \ n’
要读取列表中的所有行,我们使用readlines()方法。
>>> fobj = open(“sample.txt”)
>>> fobj.readlines()
[我喜欢Python \ n’,’Pradeepto爱KDE \ n’,’Sankarshan喜欢Openoffice \ n’]
您甚至可以循环遍历文件对象中的行。
>>> fobj = open(“sample.txt”)
>>> for x in fobj:
… print(x,end =”)
…
我喜欢Python
Pradeepto爱KDE
Sankarshan喜欢Openoffice
让我们编写一个程序,将文件名作为用户的输入,并在控制台中显示文件的内容。
#!/ usr / bin / env python3
name = input(“输入文件名:”)
fobj = open(name)
print(fobj.read())
fobj.close()
在最后一行,您可以看到我们在close()方法的帮助下关闭了文件对象。
输出
$ ./showfile.py
输入文件名:sample.txt
我喜欢Python
Pradeepto爱KDE
Sankarshan喜欢Openoffice
使用with语句
在现实生活中,我们应该尝试使用语句。它会为您关闭文件。
>>> with open(’setup.py’)as fobj:
… for fobj:
…打印行,
…#!/ usr / bin / env python3
“”因子项目“”“
从setuptools导入find_packages,设置
设置(name =’factorial’,
版本=’0.1′
Description =“因素模块”
Long_description =“我们书的测试模块”
Platforms = [“Linux”],
作者=“Kushal Das”,
Author_email =“[email protected]”
Url =“https://pymbook.readthedocs.io/en/latest/”
许可=“http://www.gnu.org/copyleft/gpl.html”,
Packages = find_packages()
)
写文件
让我们打开一个文件,然后我们将使用write()方法来写一些随机文本。
>>> fobj = open(“ircnicks.txt”,’w’)
>>> fobj.write(’powerpork \ n’)
>>> fobj.write(’indrag \ n’)
>>> fobj.write(’mishti \ n’)
>>> fobj.write(’sankarshan’)
>>> fobj.close()
现在阅读我们刚刚创建的文件
>>> fobj = open(’ircnicks.txt’)
>>> s = fobj.read()
>>>打印
电动叉车
Indrag
蒙蒙
Sankarshan
Copyfile.py
在这个例子中,我们将把给定的文本文件复制到另一个文件。
#! / usr / bin / env python3
导入系统
如果len(sys.argv)<3:
打印(“参数错误”)
打印(“./ copyfile.py file1 file2”)
Sys.exit(1)
F1 = open(sys.argv [1])
S = f1.read()
F1.close()
F2 = open(sys.argv [2],’w’)
F2.write(s)
F2.close()
注意
这种阅读文件的方式并不总是一个好主意,一个文件可以非常大的读取并适合内存。读取文件的已知大小并将其写入新文件总是更好。
你可以看到我们在这里使用一个新的模块。 Sys.argv包含所有命令行参数。记住shell cp命令,在cp之后,我们首先键入要复制的文件,然后输入新的文件名。
sys.argv中的第一个值是命令本身的名称。
#! / usr / bin / env python3
导入系统
打印(“第一个值”,sys.argv [0])
打印(“所有值”)
对于我来说,x(sys.argv)中的枚举:
打印(i,x)
输出
$ ./argvtest.py您好
第一个值./argvtest.py
所有值
0 ./argvtest.py
1你好
2那里
这里我们使用一个新的函数枚举(iterableobject),它返回索引号和来自iterable对象的值。
我们来写一些真正的代码
你知道你的处理器有多少CPU?或者什么是型号名称?我们可以编写一些代码来帮助我们理解这些东西。
如果你在Linux,那么你可以先看看lscpu命令的输出。您可以在/ proc / cpuinfo中的文件中找到此信息。
现在尝试编写将以只读方式打开文件的代码,然后逐行读取文件,找出CPU数量。
当您在Python中使用文件时,您需要做的第一件事就是打开它
文件。
打开文件时,可以使用该参数指定要打开的内容
他们。
“R”用于读取,写入“w”并附加“a”。
让我用几个例子来展示。
这将打开读取的文件名。
默认情况下,使用“r”参数打开文件。
Fh = open(“filename_here”,“r”)
这将打开要写的文件。
如果它被覆盖,它将创建一个文件,如果它不存在
它。
Fh = open(“filename_here”,“w”)
这将以附加模式打开fhe文件。
这意味着它将开放写作,一切都将被写入
文件的结尾。
Fh = open(“filename_here”,“a”)
#当程序不需要时关闭文件。
Fh.close()
我们在为Python或Python文件做作业的家庭作业中提供专家帮助。我们的导师是为各级学生提供家庭作业的专家。