python jdbc获取一行数据数据在哪一行

Python文件操作读写文件 -
- ITeye技术网站
博客分类:
最基本的文件操作当然就是在文件中读写数据。这也是很容易掌握的。现在打开一个文件以进行写操作:
1. fileHandle = open ( 'test.txt', 'w' )&
fileHandle = open ( 'test.txt', 'w' )
‘w'是指文件将被写入数据,语句的其它部分很好理解。下一步就是将数据写入文件:
1. fileHandle.write ( 'This is a test.\nReally, it is.' )&
fileHandle.write ( 'This is a test.\nReally, it is.' )
这个语句将“This is a test.”写入文件的第一行,“Really, it is.”写入文件的第二行。最后,我们需要做清理工作,并且关闭文件:
1. fileHandle.close()&
fileHandle.close()
正如你所见,在Python的面向对象机制下,这确实非常简单。需要注意的是,当你再次使用“w”方式在文件中写数据,所有原来的内容都会被删除。如果想保留原来的内容,可以使用“a”方式在文件中结尾附加数据:
1. fileHandle = open ( 'test.txt', 'a' )&
2. fileHandle.write ( '\n\nBottom line.' )&
3. fileHandle.close()&
fileHandle = open ( 'test.txt', 'a' )
fileHandle.write ( '\n\nBottom line.' )
fileHandle.close()
然后,我们读取test.txt,并将内容显示出来:
1. fileHandle = open ( 'test.txt' )&
2. print fileHandle.read()&
3. fileHandle.close()&
fileHandle = open ( 'test.txt' )
print fileHandle.read()
fileHandle.close()
以上语句将读取整个文件并显示其中的数据。我们也可以读取文件中的一行:
1. fileHandle = open ( 'test.txt' )&
2. print fileHandle.readline() # "This is a test."&
3. fileHandle.close()&
fileHandle = open ( 'test.txt' )
print fileHandle.readline() # "This is a test."
fileHandle.close()
同时,也可以将文件内容保存到一个list中:
1. fileHandle = open ( 'test.txt' )&
2. fileList = fileHandle.readlines()&div&&/div&&
3. for fileLine in fileList:&
4.&&&& print '&&', fileLine&
5. fileHandle.close()&
fileHandle = open ( 'test.txt' )
fileList = fileHandle.readlines()
for fileLine in fileList:
print '&&', fileLine
fileHandle.close()
Python在读取一个文件时,会记住其在文件中的位置,如下所示:
1. fileHandle = open ( 'test.txt' )&
2. garbage = fileHandle.readline()&
3. fileHandle.readline() # "Really, it is."fileHandle.close()&
fileHandle = open ( 'test.txt' )
garbage = fileHandle.readline()
fileHandle.readline() # "Really, it is."fileHandle.close()
可以看到,只有第二行显示出来。然而,我们可以让Python从头开始读来解决这个问题:
1. fileHandle = open ( 'test.txt' )&
2. garbage = fileHandle.readline()&
3. fileHandle.seek ( 0 )&
4. print fileHandle.readline() # "This is a test."&
5. fileHandle.close()&
fileHandle = open ( 'test.txt' )
garbage = fileHandle.readline()
fileHandle.seek ( 0 )
print fileHandle.readline() # "This is a test."
fileHandle.close()
在上面这个例子中,我们让Python从文件第一个字节开始读取数据。所以,第一行文字显示了出来。当然,我们也可以获取Python在文件中的位置:
1. fileHandle = open ( 'test.txt' )&
2. print fileHandle.readline() # "This is a test."&
3. print fileHandle.tell() # "17"&
4. print fileHandle.readline() # "Really, it is."&
fileHandle = open ( 'test.txt' )
print fileHandle.readline() # "This is a test."
print fileHandle.tell() # "17"
print fileHandle.readline() # "Really, it is."
或者在文件中一次读取几个字节的内容:
1. fileHandle = open ( 'test.txt' )&
2. print fileHandle.read ( 1 ) # "T"&
3. fileHandle.seek ( 4 )&
4. print FileHandle.read ( 1 ) # " "(原文有错)&
fileHandle = open ( 'test.txt' )
print fileHandle.read ( 1 ) # "T"
fileHandle.seek ( 4 )
print FileHandle.read ( 1 ) # " "(原文有错)
在Windows和Macintosh环境下,有时可能需要以二进制方式读写文件,比如图片和可执行文件。此时,只要在打开文件的方式参数中增加一个“b”即可:
1. fileHandle = open ( 'testBinary.txt', 'wb' )&
2. fileHandle.write ( 'There is no spoon.' )&
3. fileHandle.close()&
fileHandle = open ( 'testBinary.txt', 'wb' )
fileHandle.write ( 'There is no spoon.' )
fileHandle.close()
1. fileHandle = open ( 'testBinary.txt', 'rb' )&
2. print fileHandle.read()&
3. fileHandle.close()&
fileHandle = open ( 'testBinary.txt', 'rb' )
print fileHandle.read()
fileHandle.close()
二、从现有文件中获取信息
使用Python中的模块,可以从现有文件中获取信息。使用“os”模块和“stat”模块可以获取文件的基本信息:
1. import os&
2. import stat&
3. import time&div&&/div&&
5. fileStats = os.stat ( 'test.txt' )&
6. fileInfo = {&
7.&&&& 'Size' : fileStats [ stat.ST_SIZE ],&
8.&&&& 'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),&
9.&&&& 'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),&
10.&&&& 'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),&
11.&&&& 'Mode' : fileStats [ stat.ST_MODE ]&
14. for infoField, infoValue in fileInfo:&
15.&&&& print infoField, ':' + infoValue&
16. if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):&
17.&&&& print 'Directory. '&
18. else:&
19.&&&& print 'Non-directory.'&
import os
import stat
import time
fileStats = os.stat ( 'test.txt' )
fileInfo = {
'Size' : fileStats [ stat.ST_SIZE ],
'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
'Mode' : fileStats [ stat.ST_MODE ]
}
for infoField, infoValue in fileInfo:
print infoField, ':' + infoValue
if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
print 'Directory. '
else:
print 'Non-directory.'
上面这个例子创建了一个包含文件基本信息的dictionary。然后显示了相关信息,并且告诉我们打开的是否为目录。我们也可以试一下打开的是否是其它几种类型:
1. import os&
2. import stat&
4. fileStats = os.stat ( 'test.txt' )&
5. fileMode = fileStats [ stat.ST_MODE ]&
6. if stat.S_ISREG ( fileStats [ stat.ST_MODE ] ):&
7.&&&& print 'Regular file.'&
8. elif stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):&
9.&&&& print 'Directory.'&
10. elif stat.S_ISLNK ( fileStats [ stat.ST_MODE ] ):&
11.&&&& print 'Shortcut.'&
12. elif stat.S_ISSOCK ( fileStats [ stat.ST_MODE ] ):&
13.&&&& print 'Socket.'&
14. elif stat.S_ISFIFO ( fileStats [ stat.ST_MODE ] ):&
15.&&&& print 'Named pipe.'&
16. elif stat.S_ISBLK ( fileStats [ stat.ST_MODE ] ):&
17.&&&& print 'Block special device.'&
18. elif stat.S_ISCHR ( fileStats [ stat.ST_MODE ] ):&
19.&&&& print 'Character special device.'&
import os
import stat
fileStats = os.stat ( 'test.txt' )
fileMode = fileStats [ stat.ST_MODE ]
if stat.S_ISREG ( fileStats [ stat.ST_MODE ] ):
print 'Regular file.'
elif stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
print 'Directory.'
elif stat.S_ISLNK ( fileStats [ stat.ST_MODE ] ):
print 'Shortcut.'
elif stat.S_ISSOCK ( fileStats [ stat.ST_MODE ] ):
print 'Socket.'
elif stat.S_ISFIFO ( fileStats [ stat.ST_MODE ] ):
print 'Named pipe.'
elif stat.S_ISBLK ( fileStats [ stat.ST_MODE ] ):
print 'Block special device.'
elif stat.S_ISCHR ( fileStats [ stat.ST_MODE ] ):
print 'Character special device.'
另外,我们可以使用“os.path”来获取基本信息:
1. import os.path&
3. fileStats = 'test.txt'&
4. if os.path.isdir ( fileStats ):&
5.&&&& print 'Directory.'&
6. elif os.path.isfile ( fileStats ):&
7.&&&& print 'File.'&
8. elif os.path.islink ( fileStats ):&
9.&&&& print 'Shortcut.'&
10. elif os.path.ismount ( fileStats ):&
11.&&&& print 'Mount point.'&
import os.path
fileStats = 'test.txt'
if os.path.isdir ( fileStats ):
print 'Directory.'
elif os.path.isfile ( fileStats ):
print 'File.'
elif os.path.islink ( fileStats ):
print 'Shortcut.'
elif os.path.ismount ( fileStats ):
print 'Mount point.'
三、目录
和普通文件一样,关于目录的操作也很容易掌握。首先,列出一个目录的内容:
1. import os&
3. for fileName in os.listdir ( '/' ):&
4.&&&& print fileName&
for fileName in os.listdir ( '/' ):
print fileName
正如你所见,这很简单,用三行代码就可以完成。
创建目录也很简单:
1. import os&
3. os.mkdir ( 'testDirectory' )&
os.mkdir ( 'testDirectory' )
删除刚才创建的目录:
1. import os&
3. os.rmdir ( 'testDirectory )&
os.rmdir ( 'testDirectory )
嗯,可以创建多级目录:
1. import os&
3. os.makedirs ( 'I/will/show/you/how/deep/the/rabbit/hole/goes' )&
os.makedirs ( 'I/will/show/you/how/deep/the/rabbit/hole/goes' )
如果没有在创建的文件夹中添加任何东西,就可以一次性将它们全部删除(即,删除所列的所有空文件夹):
1. import os&
3. os.removedirs ( 'I/will/show/you/how/deep/the/rabbit/hole/goes' )&
os.removedirs ( 'I/will/show/you/how/deep/the/rabbit/hole/goes' )
当需要对一个特定的文件类型进行操作时,我们可以选择“fnmatch”模块。以下是显示“.txt”文件的内容和“.exe”文件的文件名:
1. import fnmatch&
2. import os&
4. for fileName in os.listdir ( '/' ):&
5.&&&& if fnmatch.fnmath ( fileName, '*.txt' ):&
6.&&&&&&&& print open ( fileName ).read()&
7.&&&& elif fnmatch.fnmatch ( fileName, '*.exe' ):&
8.&&&&&&&& print fileName&
import fnmatch
import os
for fileName in os.listdir ( '/' ):
if fnmatch.fnmath ( fileName, '*.txt' ):
print open ( fileName ).read()
elif fnmatch.fnmatch ( fileName, '*.exe' ):
print fileName
“*”字符可以表示任意长度的字符。如果要匹配一个字符,则使用“?”符号:
1. import fnmatch&
2. import os&
4. for fileName in os.listdir ( '/' ):&
5.&&&& if fnmatch.fnmatch ( fileName, '?.txt' ):&
6.&&&&&&&& print 'Text file.'&
import fnmatch
import os
for fileName in os.listdir ( '/' ):
if fnmatch.fnmatch ( fileName, '?.txt' ):
print 'Text file.'
“fnmatch”模块支持正则表达式:
1. import fnmatch&
2. import os&
3. import re&
5. filePattern = fnmatch.translate ( '*.txt' )&
6. for fileName in os.listdir ( '/' ):&
7.&&&& if re.match ( filePattern, fileName ):&
8.&&&&&&&& print 'Text file.'&
import fnmatch
import os
import re
filePattern = fnmatch.translate ( '*.txt' )
for fileName in os.listdir ( '/' ):
if re.match ( filePattern, fileName ):
print 'Text file.'
若只需要匹配一种类型的文件,更好的办法是使用“glob”模块。该模块的格式和“fnmatch”相似:
1. import glob&
3. for fileName in glob.glob ( '*.txt' ):&
4.&&&& print 'Text file.'&
import glob
for fileName in glob.glob ( '*.txt' ):
print 'Text file.'
使用一定范围的字符来匹配同样可行,就像在正则表达式中使用一样。假设你想要显示扩展名前只有一位数字的文件的文件名:
1. import glob&
3. for fileName in glob.glob ( '[0-9].txt' ):&
4.&&&& print filename&
import glob
for fileName in glob.glob ( '[0-9].txt' ):
print filename
“glob”模块利用“fnmatch”模块来实现。
四、数据编组
使用前一节中介绍的模块,可以实现在文件中对字符串的读写。
然而,有的时候,你可能需要传递其它类型的数据,如list、tuple、dictionary和其它对象。在Python中,你可以使用Pickling来完成。你可以使用Python标准库中的“pickle”模块完成数据编组。
下面,我们来编组一个包含字符串和数字的list:
1. import pickle&
3. fileHandle = open ( 'pickleFile.txt', 'w' )&
4. testList = [ 'This', 2, 'is', 1, 'a', 0, 'test.' ]&
5. pickle.dump ( testList, fileHandle )&
6. fileHandle.close()&
import pickle
fileHandle = open ( 'pickleFile.txt', 'w' )
testList = [ 'This', 2, 'is', 1, 'a', 0, 'test.' ]
pickle.dump ( testList, fileHandle )
fileHandle.close()
拆分编组同样不难:
1. import pickle&
3. fileHandle = open ( 'pickleFile.txt' )&
4. testList = pickle.load ( fileHandle )&
5. fileHandle.close()&
import pickle
fileHandle = open ( 'pickleFile.txt' )
testList = pickle.load ( fileHandle )
fileHandle.close()
现在试试存储更加复杂的数据:
1. import pickle&
3. fileHandle = open ( 'pickleFile.txt', 'w' )&
4. testList = [ 123, { 'Calories' : 190 }, 'Mr. Anderson', [ 1, 2, 7 ] ]&
5. pickle.dump ( testList, fileHandle )&
6. fileHandle.close()&
import pickle
fileHandle = open ( 'pickleFile.txt', 'w' )
testList = [ 123, { 'Calories' : 190 }, 'Mr. Anderson', [ 1, 2, 7 ] ]
pickle.dump ( testList, fileHandle )
fileHandle.close()
1. import pickle&
3. fileHandle = open ( 'pickleFile.txt' )&
4. testList = pickle.load ( fileHandle )&
5. fileHandle.close()&
import pickle
fileHandle = open ( 'pickleFile.txt' )
testList = pickle.load ( fileHandle )
fileHandle.close()
如上所述,使用Python的“pickle”模块编组确实很简单。众多对象可以通过它来存储到文件中。如果可以的话,“cPickle”同样胜任这个工作。它和“pickle”模块一样,但是速度更快:
1. import cPickle&
3. fileHandle = open ( 'pickleFile.txt', 'w' )&
4. cPickle.dump ( 1776, fileHandle )&
5. fileHandle.close()&
import cPickle
fileHandle = open ( 'pickleFile.txt', 'w' )
cPickle.dump ( 1776, fileHandle )
fileHandle.close()
五、创建“虚拟”文件
你用到的许多模块包含需要文件对象作为参数的方法。但是,有时创建并使用一个真实的文件并让人感到有些麻烦。所幸的是,在Python中,你可以使用“StringIO”模块来创建文件并将其保存在内存中:
1. import StringIO&
3. fileHandle = StringIO.StringIO ( "Let freedom ring" )&
4. print fileHandle.read() # "Let freedom ring."&
5. fileHandle.close()&
import StringIO
fileHandle = StringIO.StringIO ( "Let freedom ring" )
print fileHandle.read() # "Let freedom ring."
fileHandle.close()
cStringIO”模块同样有效。它的使用方法和“StringIO”一样,但就像“cPickle”之于“pickle”,它速度更快:
1. import cStringIO&
3. fileHandle = cStringIO.cStringIO ( "To Kill a Mockingbird" )&
4. print fileHandle.read() # "To Kill a Mockingbid"&
5. fileHandle.close()&
import cStringIO
fileHandle = cStringIO.cStringIO ( "To Kill a Mockingbird" )
print fileHandle.read() # "To Kill a Mockingbid"
fileHandle.close()
结论
文件管理,是众多编程语言的程序员在编写应用程序是经常遇到的问题。幸好,和其它语言相比,Python使其出乎意料地容易。Python的标准库中提供了许多相关的模块帮助程序员解决这方面的问题,而它的面向对象的机制也简化了操作。
好了,现在你已经了解了Python中文件管理的基本知识,可以在今后的应用程序中很好地使用了。
浏览 198645
maincoolbo
浏览: 351417 次
来自: 北京
同样碰到这样的问题,修改用户密码后就好了,估计是密码过期了。
赞!很快的了解了python对文件的大部分操作,以及pickl ...
ftp的用户名口令是多少啊?
ok yes thanks
piaoxue_x 写道嗯,很详细,看看再说……python 读取文件的前几行
您当前位置: &
[ 所属分类
#-*- coding:utf-8 -'''Created on @author : shaolei'''#输入数字N和文件名F ,显示文件F的前N行内容#提示用户输入要读取文件前几行N = int(raw_input('Enter a line number : && '))Filename = raw_input('Enter a file path: && ')file = open(Filename,'r')lineNum = 0for line in file.readlines()[0:N]: print linefile.close()
本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
船到江心难补漏,马到悬崖难回头!是非皆因开口多,祸事皆因强出头!万花丛中过,片叶不沾身
手机客户端
,专注代码审计及安全周边编程,转载请注明出处:http://www.codesec.net
转载文章如有侵权,请邮件 admin[at]codesec.net相关文章推荐:
python列出文件目录下的文件列表
list函数:
  功能:将字符创转化为列表,例:
列表基本函数:
   1.元素赋值,例:
注意:通过list[0]= 'hel',如果原来位置上有值,会覆盖掉原来的。
2.分片操作
1)显示序列,例:
注意:(1)list1[beg:end]...
阅读(30) 回复(0)
其他文章推荐
首先定义一个list
&&& a=[1,2,3,4,5]
&&& a或list(a),print(a)
[1, 2, 3, 4, 5]
append函数是向列表中添加一个元素(形式可以是一个元素,也可以是另一个列表,只不过将该列表当成了一个元素)
&&& a.append([&lw&,&zyd&])
[1, 2, 4, 5, ['lw', 'zyd']]
Python/Ruby
阅读(30) 回复(0)
&&the python=&& standard=&& library=&& by=&& example=&&&&&br /&
INTRODUCTION&br /&
1 TEXT----文本&br /&
2 DATA STRUCTURES----数据机构&br /&
3 ALGORITHMS----算法&br /&
4 DATES AND TIMES----日期和时间&br /&
5 MATHEMATICS----数学&br /&
6 THE FILE SYSTEM----文件系统&br /&
7 DATA PERSISTENCE AND EXCHANGE----数据保存和交换&br /&
8 DATA COMPRESSION AND ARCHIVING----数据压缩和归档&br /...
Python/Ruby
阅读(30) 回复(0)
&div id=&cnblogs_post_body&&
&strong&本文来自 :/rollenholt/archive//2466179.html&br /&
python中对文件、文件夹&/strong&&strong&(文件操作函数)&/strong&&strong&的操作需要涉及到os模块和shutil模块。&/strong&
得到当前工作目录,即当前python脚本工作的目录路径:&&strong&os.getcwd()&/strong&
返回指定目录下的所有文件和目录名:&st...
Python/Ruby
阅读(0) 回复(0)
python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。
得到当前工作目录,即当前python脚本工作的目录路径: os.getcwd()
返回指定目录下的所有文件和目录名:os.listdir()
函数用来删除一个文件:os.remove()
删除多个目录:os.removedirs(r“c:\python”)
检验给出的路径是否是一个文件:os.path.isfile()
检验给出的路径是否是一个目录:os.path.isdir()
判断是否是绝对路径:os...
阅读(90) 回复(0)
&div class=&codeheads&&
分片获得拷贝
&div id=&code771& class=&codeText&&
&ol style=&margin:0 1px 0 0padding-left:40& start=&1& class=&dp-css&&
&span style=&color:#000000;&&&span style=&color:#0000CC;&&&&/span&&span style=&color:#0000CC;&&&&/span&&span style=&color:#0000CC;&&&&/span& list7&span style=&color:#0000CC;&&=&/span&list6...
Python/Ruby
阅读(30) 回复(0)
写了一个小程序分析《python科学计算》第二版目前的状态。在下面的目录中,[ ]中的两个数字分别表示章节的文字数和示例代码行数。上级目录的的数字和下级目录中的合计。目前全书有32万字,9100行示例代码。
点击(此处)折叠或打开
from os import path
import Ipython.nbformat.current as nf
def iter_notebooks(...
Python/Ruby
阅读(60) 回复(0)
1.比较操作符&br /&
可以看到,列表有一个元素那就直接比较,如果有多个元素,那么只比较第0个元素的结果,并作为最终的结果,后面的不在比较&br /&
&div class=&codeheads&&
比较操作符
&div id=&code530& class=&codeText&&
&ol style=&margin:0 1px 0 0padding-left:40& start=&1& class=&dp-css&&
&span style=&color:#000000;&&&span style=&color:#0000CC;&&&&/span...
Python/Ruby
阅读(30) 回复(0)
可以包含不同类型的对象,但是是不可变的,不可以在增减元素,用()来定义.
元组的操作: tuple(obj),切片,in,for in,del,cmp,len,max,min
#定义一个元组
tuple1 =()
tuple1 = tuple({1,2,3,4,5,'6'})
tuple1 = (1, 2, '3', 4, '5')
# 定义了一个元组之后就无法再添加或修改元组中的元素,但是可以重新赋值
print tuple1...
阅读(30) 回复(0)
转载至&http://blog.chinaunix.net/uid-9525959-id-3074355.html&br /&
&span style=&color:#666666;font-family:宋体, Aline-height:26white-space:background-color:#FFFFFF;&&更多的信息,可以参考python内部的json文档:&/span&&br style=&color:#666666;font-family:宋体, Aline-height:26white-space:background-color:#FFFFFF;& /&
&span style=&color:#666666;font-family:宋体...
阅读(0) 回复(0)
自己写的设置环境变量的python文件
# -*- coding:utf-8 -*-
#python 标识
#引入os 模块
#python has a way to put definitions in a file and use them in a script or in an interactive instance of the interpreter. Such a file is #called a module&
#把交互式脚本或者实例的实现放到文件中,这个文件叫做模块
lang = os.environ[&LANG&]
#取环境变量LANG
f = open(os.environ[&HOME&] + '/.bashr...
阅读(0) 回复(0)
盛拓传媒:
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证:编号(京)字第1149号
ITPUB推荐文章解答你所有技术难题1534人阅读
python(4)
with open(fname, 'rb') as fh:
first = next(fh)
offs = -100
while True:
fh.seek(offs, 2)
lines = fh.readlines()
if len(lines)&1:
last = lines[-1]
print first
print last
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:101070次
积分:2151
积分:2151
排名:第10565名
原创:89篇
转载:62篇
译文:20篇
评论:21条
(1)(2)(8)(2)(2)(4)(3)(28)(16)(17)(8)(4)(3)(3)(1)(4)(11)(16)(4)(1)(1)(6)(1)(1)(2)(1)(4)(1)(2)(1)(1)(3)(9)}

我要回帖

更多关于 oracle获取第一行数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信