python输入输出+文件+OS

2023-11-06

声明:本人的所有博客皆为个人笔记,作为个人知识索引使用,因此在叙述上存在逻辑不通顺、跨度大等问题,希望理解。分享出来仅供大家学习翻阅,若有错误希望指出,感谢!

Python输入和输出

输出格式美化

Python三种输出值的方式

  • 表达式语句
  • print() 函数
  • 文件对象的 write() 方法

如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值

如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现

  • str(): 函数返回一个用户易读的表达形式
  • repr(): 产生一个解释器易读的表达形式

字符串对象的 rjust() 方法, 它可以将字符串靠右, 并在左边填充空格

还有类似的方法, 如 ljust() 和 center(), 这些方法并不会写任何东西, 它们仅仅返回新的字符串

另一个方法 zfill(), 它会在数字的左边填充 0


str.format()

str.format() 的基本使用如下:

  1. 括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换
>>> print('{}网址: "{}!"'.format('菜鸟教程', 'www.runoob.com'))
菜鸟教程网址: "www.runoob.com!"
  1. 在括号中的数字用于指向传入对象在 format() 中的位置
>>> print('{0} 和 {1}'.format('Google', 'Runoob'))
Google 和 Runoob
>>> print('{1} 和 {0}'.format('Google', 'Runoob'))
Runoob 和 Google
  1. 如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数
>>> print('{name}网址: {site}'.format(name='菜鸟教程', site='www.runoob.com'))
菜鸟教程网址: www.runoob.com
  1. 位置及关键字参数可以任意的结合
>>> print('站点列表 {0}, {1}, 和 {other}'.format('Google', 'Runoob', other='Taobao'))
站点列表 Google, Runoob, 和 Taobao
  1. !a (使用 ascii()), !s (使用 str()) 和 !r (使用 repr()) 可以用于在格式化某个值之前对其进行转化
>>> import math
>>> print('常量 PI 的值近似为: {}'.format(math.pi))
常量 PI 的值近似为: 3.141592653589793
>>> print('常量 PI 的值近似为: {!r}'.format(math.pi))
常量 PI 的值近似为: 3.141592653589793
  1. 可选项 :格式标识符可以跟着字段名,这就允许对值进行更好的格式化
>>> **import** math
>>> **print**('常量 PI 的值近似为 {0:.3f}'.format(math.pi))	# 将Pi保留到小数点后三位
常量 PI 的值近似为 3.142
  1. : 后传入一个整数, 可以保证该域至少有这么多的宽度,用于美化表格时很有用
>>> table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
>>> for name, number in table.items():
...   print('{0:10} ==> {1:10d}'.format(name, number))
...
Google   ==>      1
Runoob   ==>      2
Taobao   ==>      3

如果你有一个很长的格式化字符串, 而你不想将它们分开, 那么在格式化时通过变量名而非位置会很方便

最简单的就是传入一个字典, 然后使用方括号 [ ] 来访问键值

>>> table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
>>> print('Runoob: {0[Runoob]:d}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}'.format(table))
Runoob: 2; Google: 1; Taobao: 3

也可以通过在 table 变量前使用 ** 来实现相同的功能:

>>> table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
>>> print('Runoob: {Runoob:d}; Google: {Google:d}; Taobao: {Taobao:d}'.format(**table))
Runoob: 2; Google: 1; Taobao: 3

旧式字符串格式化

% 操作符也可以实现字符串格式化,它将左边的参数作为类似 sprintf() 式的格式化字符串, 而将右边的代入, 然后返回格式化后的字符串(现已不再建议使用)

因为 str.format() 是比较新的函数, 大多数的 Python 代码仍然使用 % 操作符。但是因为这种旧式的格式化最终会从该语言中移除, 应该更多的使用 str.format()


读取键盘输入

Python提供了 input() 内置函数从标准输入读入一行文本,默认的标准输入是键盘

input 可以接收一个Python表达式作为输入,并将运算结果返回

str = input("请输入:");
print ("你输入的内容是: ", str)

这会产生如下的对应着输入的结果:

请输入:菜鸟教程	#此处的“菜鸟教程”是从键盘输入的
你输入的内容是:  菜鸟教程

Python文件方法

open() 将会返回一个 file 对象,基本语法格式如下

open(filename, mode)
  • filename:包含了你要访问的文件名称的字符串值
  • mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读®

不同模式打开文件的完全列表:

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头
r+ 打开一个文件用于读写。文件指针将会放在文件的开头
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写
模式 r r+ w w+ a a+
+ + + +
+ + + + +
创建 + + + +
覆盖 + +
指针在开始 + + + +
指针在结尾 + +

实例:

f = open("/tmp/foo.txt", "w")	# 打开一个文件
f.write( "Python 是一个非常好的语言" )
f.close()	# 关闭打开的文件

此时打开文件 foo.txt,显示如下:

Python 是一个非常好的语言

open的完整语法

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数说明:

  • file: 必需,文件路径(相对或者绝对路径)
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型

文件对象常用方法

以下假设已经创建了一个名为 f 的文件对象,假设foo.txt 已存在

f.read()

为了读取一个文件的内容,调用 f.read(size),这将读取一定数目的数据,然后作为字符串或字节对象返回

size 是一个可选的数字类型的参数,当 size 被忽略了或者为负,那么该文件的所有内容都将被读取并且返回

f = open("/tmp/foo.txt", "r")	# 打开一个文件
str = f.read()		# 读取全部内容
print(str)
f.close()	# 关闭打开的文件

f.readline()

f.readline() 会从文件中读取单独的一行,换行符为 ‘\n’,f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行

f = open("/tmp/foo.txt", "r")
str = f.readline()
print(str)		# 输出一行
f.close()

f.readlines()

f.readlines() 将返回该文件中包含的所有行

如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割

f = open("/tmp/foo.txt", "r")
str = f.readlines()
print(str)
f.close()

另一种方式是迭代一个文件对象然后读取每行

f = open("/tmp/foo.txt", "r")
for line in f:
  print(line, end='')
f.close()

这个方法很简单, 但是并没有提供一个很好的控制。 因为两者的处理机制不同, 最好不要混用


f.write()

f.write(string) 将 string 写入到文件中, 然后返回写入的字符数

f = open("/tmp/foo.txt", "w")
num = f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )	# 向文件中写入字符串
print(num)		# 输出写入的字符数
f.close()

如果要写入一些不是字符串的东西, 那么将需要先进行转换

f = open("/tmp/foo1.txt", "w")
value = ('www.runoob.com', 14)		# value是元组
s = str(value)		# 类型转换为字符串
f.write(s)
f.close()

f.tell()

f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数


f.seek()

如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数

from_what 的值,如果是 0 表示开头,如果是 1 表示当前位置,2 表示文件的结尾

  • seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
  • seek(x,1) : 表示从当前位置往后移动x个字符
  • seek(-x,2):表示从文件的结尾往前移动x个字符

from_what 值为默认为0,即文件开头。下面给出一个完整的例子:

>>> f = open('/tmp/foo.txt', 'rb+')
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5)   # 移动到文件的第六个字节
5
>>> f.read(1)
b'5'
>>> f.seek(-3, 2) # 移动到文件的倒数第三字节
13
>>> f.read(1)
b'd'

f.close()

在文本文件中 (那些打开文件的模式下没有 b 的),只会相对于文件起始位置进行定位

当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常

当处理一个文件对象时, 使用 with 关键字是非常好的方式。在结束后, 它会帮你正确的关闭文件,而且写起来也比 try - finally 语句块要简短:

with open('/tmp/foo.txt', 'r') as f:	# 使用该方法创建文件对象 f ,f 用完后会自动关闭
read_data = f.read()
# 不需要再手写 f.close()

file对象完整方法

序号 方法及描述
1 file.close():关闭文件。关闭后文件不能再进行读写操作
2 file.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入
3 file.fileno():返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上
4 file.isatty():如果文件连接到一个终端设备返回 True,否则返回 False
5 file.read([size]):从文件读取指定的字节数,如果未给定或为负则读取所有
6 file.readline([size]):读取整行,包括 “\n” 字符
7 file.readlines([sizeint]):读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区
8 file.seek(offset[, whence]):移动文件读取指针到指定位置
9 file.tell():返回文件当前位置
10 file.truncate([size]):从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 windows 系统下的换行代表2个字符大小
11 file.write(str):将字符串写入文件,返回的是写入的字符长度
12 file.writelines(sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符

pickle 模块

python的pickle模块实现了基本的数据序列和反序列化

通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储

通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象

基本接口:

pickle.dump(obj, file, [,protocol])		# 序列化对象,将对象obj保存到文件file中去
  • 参数protocol是序列化模式
    • 0(默认):ASCII协议,表示以文本的形式进行序列化
    • 1:以老式的二进制协议进行序列化
    • 2:以新二进制协议进行序列化
  • file:保存到的类文件对象
    • file必须有write()接口
    • file可以是一个以’w’打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象
  • obj:需要被序列化的对象
x = pickle.load(file)	  # 对file中的数据流进行反序列化,将其转化为python对象
  • file中有read()接口和readline()接口

实例:

# 该文件名为CS.py
import pickle
class CS:		# 测试类
    def outputCS(self):
        print('CS测试成功')

output = open('data.pkl', 'wb')
pickle.dump(CS(),output,2)	# 序列化一个CCSS对象并存储到文件
output.close()
import pickle
import CS	# CS类的定义在该文件中,缺少类定义会导致无法正常反序列化

pkl_file = open('data.pkl', 'rb')
data = pickle.load(pkl_file)	# 从文件中读取并反序列化为一个python对象
data.outputCS()		#调用CS类中的方法
pkl_file.close()

运行结果:“CS测试成功”

Python OS 文件/目录方法

os 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示:

序号 方法及描述
1 os.access(path, mode):检验权限模式
2 os.chdir(path):改变当前工作目录
3 os.chflags(path, flags):设置路径的标记为数字标记
4 os.chmod(path, mode):更改权限
5 os.chown(path, uid, gid):更改文件所有者
6 os.chroot(path):改变当前进程的根目录
7 os.close(fd):关闭文件描述符 fd
8 os.closerange(fd_low, fd_high):关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略
9 os.dup(fd):复制文件描述符 fd
10 os.dup2(fd, fd2):将一个文件描述符 fd 复制到另一个 fd2
11 os.fchdir(fd):通过文件描述符改变当前工作目录
12 os.fchmod(fd, mode):改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限
13 os.fchown(fd, uid, gid):修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定
14 os.fdatasync(fd):强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息
15 os.fdopen(fd[, mode[, bufsize]]):通过文件描述符 fd 创建一个文件对象,并返回这个文件对象
16 os.fpathconf(fd, name):返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)
17 os.fstat(fd):返回文件描述符fd的状态,像stat()
18 os.fstatvfs(fd):返回包含文件描述符fd的文件的文件系统的信息,Python 3.3 相等于 statvfs()
19 os.fsync(fd):强制将文件描述符为fd的文件写入硬盘
20 os.ftruncate(fd, length):裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小
21 os.getcwd():返回当前工作目录
22 os.getcwdu():返回一个当前工作目录的Unicode对象
23 os.isatty(fd):如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False
24 os.lchflags(path, flags):设置路径的标记为数字标记,类似 chflags(),但是没有软链接
25 os.lchmod(path, mode):修改连接文件权限
26 os.lchown(path, uid, gid):更改文件所有者,类似 chown,但是不追踪链接
27 os.link(src, dst):创建硬链接,名为参数 dst,指向参数 src
28 os.listdir(path):返回path指定的文件夹包含的文件或文件夹的名字的列表
29 os.lseek(fd, pos, how):设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效
30 os.lstat(path):像stat(),但是没有软链接
31 os.major(device):从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)
32 os.makedev(major, minor):以major和minor设备号组成一个原始设备号
33 os.makedirs(path[, mode]):递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹
34 os.minor(device):从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )
35 os.mkdir(path[, mode]):以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)
36 os.mkfifo(path[, mode]):创建命名管道,mode 为数字,默认为 0666 (八进制)
37 os.mknod(filename[, mode=0600, device]):创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)
38 os.open(file, flags[, mode]):打开一个文件,并且设置需要的打开选项,mode参数是可选的
39 os.openpty():打开一个新的伪终端对。返回 pty 和 tty的文件描述符
40 os.pathconf(path, name):返回相关文件的系统配置信息
41 os.pipe():创建一个管道. 返回一对文件描述符(r, w) 分别为读和写
42 os.popen(command[, mode[, bufsize]]):从一个 command 打开一个管道
43 os.read(fd, n):从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串
44 os.readlink(path):返回软链接所指向的文件
45 os.remove(path):删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory
46 os.removedirs(path):递归删除目录
47 os.rename(src, dst):重命名文件或目录,从 src 到 dst
48 os.renames(old, new):递归地对目录进行更名,也可以对文件进行更名
49 os.rmdir(path):删除path指定的空目录,如果目录非空,则抛出一个OSError异常
50 os.stat(path):获取path指定的路径的信息,功能等同于C API中的stat()系统调用
51 os.stat_float_times([newvalue]):决定stat_result是否以float对象显示时间戳
52 os.statvfs(path):获取指定路径的文件系统统计信息
53 os.symlink(src, dst):创建一个软链接
54 os.tcgetpgrp(fd):返回与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组
55 os.tcsetpgrp(fd, pg):设置与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组为pg
56 os.ttyname(fd)返回一个字符串,它表示与文件描述符fd 关联的终端设备。如果fd 没有与终端设备关联,则引发一个异常
57 os.unlink(path)删除文件路径
58 os.utime(path, times):返回指定的path文件的访问和修改的时间
59 os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])输出在文件夹中的文件名通过在树中游走,向上或者向下
60 os.write(fd, str):写入字符串到文件描述符 fd中. 返回实际写入的字符串长度
61 os.path 模块:获取文件的属性信息
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python输入输出+文件+OS 的相关文章

  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 为什么一旦我离开内置的运行服务器,Django 就无法找到我的管理媒体文件?

    当我使用内置的简单服务器时 一切正常 管理界面很漂亮 python manage py runserver 但是 当我尝试使用 wsgi 服务器为我的应用程序提供服务时django core handlers wsgi WSGIHandle
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • 如何将 GAE 中一种 Kind 中的所有实体复制到另一种 Kind 中,而无需显式调用每个属性

    我们如何使用function clone entity 如中所述在 Python 中复制 Google App Engine 数据存储中的实体 而无需在 编译 时知道属性名称 https stackoverflow com question
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)

    一 项目简介 本项目是一套基于Python和mysql开发的智慧校园答题考试系统 主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者 包含 项目源码 项目文档 数据库脚本等 该项目附带全部源码可作为毕设使用 项目
  • 搭建自己的searx搜索引擎

    Searx是一个隐私尊重的免费元搜索引擎 它具有以下功能特性 自我托管 默认不使用 Cookie 不跟踪 不分析用户 不收集用户数据 不与第三方共享用户数据 提供安全的加密连接 HTTPS SSL 等 如果您更在意隐私而不是效率 这会是一个
  • PPTP L2TP IPsec

    点对点隧道协议 PPTP PPTP是一个第2层的协议 将PPP数据桢封装在IP数据报内通过IP网络 如Internet传送 PPTP还可用于专用局域网络之间的连接 RFC草案 点对点隧道协议 对PPTP协议进行了说明和介绍 该草案由PPTP
  • springboot+cache缓存下(原理篇)

    原理 1 自动配置类 CacheAutoConfiguration 在idea中使用快捷键ctrl shift n 查找出CacheAutoConfiguration类 看到import中有导入CacheConfigurationImpor
  • S7-1200 PLC的数据类型

    S7 1200 PLC的数据类型 除了基本数据类型之外 还支持一些复杂的数据类型 包括结构数据类型Struct PLC数据类型UDT 数组Array 系统数据类型SDT 硬件数据类型DB ANY 参数数据类型Variant String和C
  • C++11静态断言static_assert

    C 11静态断言static assert 一 运行时断言 二 静态断言的需求 三 静态断言 四 单参数版本的静态断言 一 运行时断言 断言 assertion 是一种编程中常用的手段 在通常情况下 断言就是将一个返回值总是需要为真的判别式
  • vue3 组合式api中 ref 和$parent 的使用

    ref 的使用 vue3中 在 组件中添加一个 component ref xxx 就可以在父组件中得到 子组件的 dom 对象 以及 虚拟的 dom 对象 有了虚拟 dom 我们就可以在父组件中控制子组件的显示了 ref 的使用方法 vu
  • vue中的富文本框的使用(vue-quill-editor)

    一 安装 vue quill editor npm install vue quill editor 二 在main js中引入 import VueQuillEditor from vue quill editor import quil
  • Android Widget:DrawerLayout配合Toolbar的使用及常见问题

    前言 最近在仿写网易云音乐安卓端界面 记录下所遇到的问题及解决方案 DrawerLayout的基础使用 DrawerLayout经常配合NavigationView及Toolbar使用 编写侧滑栏 1 首先添加支持 implementati
  • MapReduce处理csv

    MapReduce处理csv csv是由逗号 来分割的文件 在编写Mapper类的时候需要以 分割成一个个的数据 查看一下csv数据 以上是为了测试做的数据 要处理的结果就是经过mapreduce再原封不动的出来 因为是测试 所以内容不做任
  • 搭建虚拟专网络服务器

    搭建虚拟专网络服务器 准备环境 一台windows server2008R2 服务器 没有安装ad域服务的 IP地址为 192 168 4 92 一台物理机windows 10 家庭版 1 首先安装 网络策略和访问服务 第二步 勾选上远程访
  • 为什么普通人赚钱这么难?普通人的赚钱之路在哪里

    前几天听一个老家的朋友说 辛辛苦苦一整年 发现并没有赚到什么钱 付出与收入不成正比 首先要知道勤奋 努力并不一定就能够赚到钱 像送外卖的 工地上班的 厂里上班的哪个不勤奋 但他们即使非常努力工作一个月 扣除基本开支 也存不了多少钱 那普通人
  • GNS3-GREvpn

    GREvpn 发一下这些日忙的东西 实验拓扑 以R2为界限的左半边运行ospf 各个链路已经ping通 用R7模拟PC1 PC1和R2的f0 0来回链路没问题 右半边同左半边做相应的配置也成功ping通 在R2和R3之间建立vpn隧道 网段
  • 利用Matlab绘制图像中的某一行或者某一列的灰度曲线

    filename C Users Administrator Desktop 透视变换 包含裂缝的整个图片 123 jpg imgData imread filename imshow imgData 该函数可以用来显示已经读入的数据 A
  • 解决AD中pcb原件移动提示绿色报错问题

    有可能以下三个原因之一所导致的 1 不符合DRC规则 比如原件之间距离过近 就是报错 2 右下角ROOM没有删除 右键清楚就可以啦 3 如果以上两个确证都是正常的 还是报错的话 终极解决方案 step1 在pcb界面下 点击design n
  • 主线3.1DeepFM模型论文阅读:DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

    文章目录 一 摘要 二 模型演变和各模型间的对比 1 CTR的任务要求 2 DeepFM模型的引入 3 各模型间的对比 4 DeepFM优势 三 DeepFM模型介绍 1 FM部分 2 Deep部分 一 摘要 对于一个基于CTR预估的推荐系
  • selenium小项目实践

    1 斗鱼爬虫 爬取斗鱼直播平台的所有房间信息 游戏直播 全部游戏直播 斗鱼直播 1 1 思路分析 数据的位置 每个房间的数据都在id live list contentbox的ul中 实现翻页和控制程序结束 selenium中通过点击就可以
  • 基于麻雀搜索算法(SSA)优化长短期记忆神经网络参数SSA-LSTM冷、热、电负荷预测(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 冷负荷 2 2 热负荷 2 3 电负荷 3 参考文献 4 Python代码 数据 1
  • 虚拟滚动之原理及其封装

    本文分享自微信公众号 一Li小麦 gh c88159ec1309 作者 一li小麦 目前GitHub上只放出demo的版本 将在 https github com dangjingtao vList git 持续更新 前端的业务开发中会遇到
  • python输入输出+文件+OS

    声明 本人的所有博客皆为个人笔记 作为个人知识索引使用 因此在叙述上存在逻辑不通顺 跨度大等问题 希望理解 分享出来仅供大家学习翻阅 若有错误希望指出 感谢 Python输入和输出 输出格式美化 Python三种输出值的方式 表达式语句 p