python读取文本(txt,csv)及相关操作会用到哪些函数

import csv
with open('my.csv') as f:
fcsv = csv.reader(f) # 标题行
for row in fcsv:
# row[0] row[1]

# txt
with open('my.txt') as f:
for line in f: #按行读取
#f.read() # 读取所有
pass

❷ Python类似open.read 何时用函数 何时用 函数

open 不会 for ... in 不会 文件读取貌似只有open(xxx).read()会一次性读完整个文件内容,其他方式(readlines之类的)都不会,但是corpora.Dictionary 是什么行为就不清楚了

❸ pandas中read函数的使用

利用Python的pandas数据结构来读取excel表格的数据,部分代码如下:

#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt

catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,index_col=u'日期')
#读取数据,指定"日期"列为索引列

大多数书上都是这样写的,但是在Python2.7上运行时出现错误。(没有在Python3.x版本试过)
出现了如下问题:
这里写图片描述
使用help(pd.read_excel)发现参数中有必选参数sheetname,加入到函数中,代码如下:

#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt

catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,sheetname=0,index_col=u'日期')

运行成功。
sheetname=0 的意思是:读取xls文件中的第一个表格。(假设文件中有很多个表格)
另外,也可以将文件转换成csv格式,就不需要这个参数了。代码如下:

catering_data="catering_sale.csv"
data=pd.read_csv(catering_data)

❹ python 读写后直接read 为什么本页代码给写入文本了

大概是你别的程序追加写进去的吧,仔细查代码,或者全都删了重开一个新项目再看看。
另外,你组织整个包的代码文件不够好,命名、风格等都需要改进。

建议初学的时候用IDLE,不要用这种集成开发环境。
以上。

❺ 请教下 python read(3)的时候,为什么不是每行显示三个字符

如图所示

这都是每一行的结尾 然而在这3个字后面都有看不见的字符 也就是回车换行符 这符号占2个字符 所以才有你第2张图的效果 你可以先替换回车换行符为空 然后再按3个字输出

❻ Python的各种imread函数在实现方式和读取速度上有何区别

1. PIL.Image.open

代码在这里:Pillow/Image.py at 3.1.x · python-pillow/Pillow · GitHub
open() 函数打开图像,但并不读入,直到有操作发生。
具体的读取操作是在 ImageFile.py 写的。大体流程是先检测文件类型,整块地读入文件内容,然后调用解码器解码,做了很多优化,效率应该还是很高的。

2. scipy.ndimage.imread

代码在这里:scipy/io.py at v0.17.1 · scipy/scipy · GitHub
imread 调用 scipy.misc.pilutil.imread。从名字就能看出来其实调用的还是 Pillow。
根据 pilutil 代码:scipy/pilutil.py at v0.17.1 · scipy/scipy · GitHub
确实是调用 pil.image.open(),然后返回一个 fromimage()。

3. scipy.misc.imread

misc 的 __init__.py 在这里:scipy/__init__.py at v0.17.1 · scipy/scipy · GitHub
调用的还是 pilutil 中的 imread
相关代码如下
try:
from .pilutil import *
from . import pilutil
__all__ += pilutil.__all__
del pilutil
except ImportError:
pass

也算是学了一招,从 pilutil 导入其所有函数添加到当前空间,然后又删除了 pilutil 消除影响。

4. skimage.io.imread

代码在这里:scikit-image/_io.py at master · scikit-image/scikit-image · GitHub
是通过插件 plugin 来读入不同的文件,而且会试用几个不同的 plugins 来找到合适的。
使用 call_plugin 来调用,代码在这里:scikit-image/manage_plugins.py at master · scikit-image/scikit-image · GitHub
可以根据如下代码查看插件调用的优先级
# For each plugin type, default to the first available plugin as defined by
# the following preferences.
preferred_plugins = {
# Default plugins for all types (overridden by specific types below).
'all': ['pil', 'matplotlib', 'qt', 'freeimage'],
'imshow': ['matplotlib'],
'imshow_collection': ['matplotlib']
}

plugins 的源代码在这里:scikit-image/skimage/io/_plugins at master · scikit-image/scikit-image · GitHub。可以看到 pil 的 imread,是用 open 打开图像之后,再转换成 ndarray。

5. cv2.imread

这里是调用的 CV::imread(),代码在这里:opencv/loadsave.cpp at master · opencv/opencv · GitHub。一般来说 C\C++ 的实现,应该比 python 速度快一点。

6. matplotlib.image.imread

matplotlib 的文档里面说,matplotlib 原生只可以读取 PNG 文件,有 PIL 的时候,可以读取其他类型的文件。如果使用 URL 打开在线图像文件,需要符合 PIL 的文档要求。

matplotlib.image.imread 的代码在这里:matplotlib/image.py at master · matplotlib/matplotlib · GitHub。matplotlib 的原生 PNG 读取和写入,是用 C 实现的,代码在这里:matplotlib/_png.cpp at master · matplotlib/matplotlib · GitHub。

matplotlib 是先用 pil 的 open 打开图像,如果格式是 png,就用原生方法打开。相关代码如下:
handlers = {'png': _png.read_png, }
if format is None:
if cbook.is_string_like(fname):
parsed = urlparse(fname)
# If the string is a URL, assume png
if len(parsed.scheme) > 1:
ext = 'png'
else:
basename, ext = os.path.splitext(fname)
ext = ext.lower()[1:]
elif hasattr(fname, 'name'):
basename, ext = os.path.splitext(fname.name)
ext = ext.lower()[1:]
else:
ext = 'png'
else:
ext = format

if ext not in handlers:
im = pilread(fname)
if im is None:
raise ValueError('Only know how to handle extensions: %s; '
'with Pillow installed matplotlib can handle '
'more images' % list(six.iterkeys(handlers)))
return im

声明的处理器只有 png。如果是 png 文件,调用 _png.read_png。如果不是 png 直接使用 pilread(就是用 pil 的 Image.open 然后 pil_to_array)。

matplotlib 的源码确实比较复杂,一大部分主体是用 C 写的,改动很激进,功能更新猛烈。

❼ python readlines函数

你要知道readline的用法是按行读取,和你有没有 ";" 号无关

❽ python3用read()函数读取文件两次,就变成空字符串了

python在读取文件的时候是根据光标位置来读取的。读一行以后光标位置到了下一行。再来个read又到了下一行。

想要重新从头开始读的话用f.seek(0)

将光标位置放到最前面。这样再f.read()就是第一行的内容

还有个方法是f.tell()

告诉你当前光标的位置。你可以把文件都读完了以后f.tell()一下看看光标位置

然后再f.seek(0)

再f.tell()一下看看光标位置

with open() as f跟你截图用的差不多,只不过这种方式不用f.close(),会自动关闭文件句柄。不过也可以手动关闭文件句柄

❾ python中open函数

f=open(r'C:UsersdellDesktop1.txt','r')
print(f.read())

文件打开操作只是打开了文件,还需要读取文件内容才能显示文件内容