使用手机与已经蓝牙配对的mac pro机器传送文件,却总提示失败。 解决方法如下:
mac机器还需要打开共享的权限:
打开“系统偏好设置” -> 选择“共享” -> 勾选左边的“蓝牙共享”,也可以在右侧界面做一些接收文件存放默认路径等的设置。
DONE!
使用手机与已经蓝牙配对的mac pro机器传送文件,却总提示失败。 解决方法如下:
mac机器还需要打开共享的权限:
打开“系统偏好设置” -> 选择“共享” -> 勾选左边的“蓝牙共享”,也可以在右侧界面做一些接收文件存放默认路径等的设置。
DONE!
1. 两个文本文件,现在想取出其中的相同的行或不同的行,可以以下操作:(比如文件a.txt和文件b.txt)
grep -wf a.txt b.txt (取出相同的行)
grep -wvf a.txt b.txt (取出不相同的行)
2. 如果要计算取出的行一共多少行? 如下:
grep -wf a.txt b.txt | wc -l (相同的行一共有多少行)
3. 如果a.txt有重复行数据,可以使用下面命令过滤并产生新文件a1.txt,然后再用上面的方法比较
sort a.txt | uniq -c | sort -rn | cut -c 9- > a1.txt (sort先排序,uniq再计数,sort -rn再按重复数量倒序, cut再截取,后导出)
XCODE中获取添加的文件的路径的3个方法,以下以显示图片测试获取图片路径的方法:
测试的UIViewController的demo源码(TestImageViewController.swift),注释中详细描述3个不同添加文件方式下获取路径的方法,GOOD LUCK!
import AVFoundation
class TestImageViewController: UIViewController {
lazy var imageView: UIImageView = {
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
//方法1: 选择Targets中项目 –> build Phases中 –> copy Bundle Resources点击下面的+ 直接添加的alalay.jpg
//let testImage = UIImage(contentsOfFile: Bundle.main.path(forResource: “alalay”, ofType: “jpg”)!)
//方法2: 新建目录任意命名如imgs,将测试图片alalay.jpg文件拖入imgs目录后,将imgs目录名称修改为imgs.bundle,将这个imgs.bundle拖入xcode项目
//let testImage = UIImage(contentsOfFile: Bundle.main.path(forResource: “imgs”, ofType: “bundle”)! + “/” + “alalay.jpg”)
//方法3: 将alalay.jpg图片放在Assets.xcassets中
let testImage = UIImage(named:“alalay.jpg”)!
imageView.image = testImage
imageView.contentMode = .scaleAspectFit
return imageView
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(imageView)
}
}
Linux学习系列主要侧重数据处理的命令实战学习,包括但不限于awk,grep,sed
等命令的实战学习。
split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
参数解释
(1)查看文件总行数
wc -l seven.sql
输出:3307194 seven.sql
,即约330万行,分割时以30万行为单位。
(2)分割文件
split -l 300000 seven.sql /home/kinson/Desktop/test1/seven_
--解释:
--参数"l"表示按行分割;
--"300000"表示每个文件30w行
--"seven.sql"为将分割文件;
--"/home/kinson/Desktop/test1/seven_"为分割后的文件路径与命名。
(3)分割结果
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
cat主要有如下三大功能:
cat [-AbeEnstTuv] [--help] [--version] fileName
参数解释
(1)合并全部已分割文件并检验行数
cat test1/seven_* >newseven
wc -l newseven
输出:3307194 newseven
,与原文件seven.sql行数一致。
(2)合并部分已分割文件并检验行数
cat test1/seven_aa > seven_part
cat test1/seven_ab >> seven_part
cat test1/seven_ac >> seven_part
wc -l seven_part
>>
表示追加,输出900000 seven_part
,即合并了3个文件,每个30万行,所以合并后文件总行数为90万行。
转自链接:https://www.jianshu.com/p/014ec71b0215
1. 文件上传参考:
#!/usr/bin/python #-*- encoding:utf-8 -*- import tornado.ioloop import tornado.web import shutil import os class UploadFileHandler(tornado.web.RequestHandler): def get(self): self.write(''' <html> <head><title>Upload File</title></head> <body> <form action='file' enctype="multipart/form-data" method='post'> <input type='file' name='file'/><br/> <input type='submit' value='submit'/> </form> </body> </html> ''') def post(self): upload_path=os.path.join(os.path.dirname(__file__),'files') #文件的暂存路径 file_metas=self.request.files['file'] #提取表单中‘name’为‘file’的文件元数据 for meta in file_metas: filename=meta['filename'] filepath=os.path.join(upload_path,filename) with open(filepath,'wb') as up: #有些文件需要已二进制的形式存储,实际中可以更改 up.write(meta['body']) self.write('finished!') app=tornado.web.Application([ (r'/file',UploadFileHandler), ]) if __name__ == '__main__': app.listen(3000) tornado.ioloop.IOLoop.instance().start()
2. 文件下载代码参考:
def post(self,filename): print('i download file handler : ',filename) #Content-Type这里我写的时候是固定的了,也可以根据实际情况传值进来 self.set_header ('Content-Type', 'application/octet-stream') self.set_header ('Content-Disposition', 'attachment; filename='+filename) #读取的模式需要根据实际情况进行修改 with open(filename, 'rb') as f: while True: data = f.read(buf_size) if not data: break self.write(data) #记得有finish哦 self.finish()
1) 获得脚本文件目录绝对路径
os.path.abspath(os.path.dirname(__file__))
2)获得上级目录
os.path.dirname(fileOrDir)
3)获得脚本文件名
os.path.basename(__file__)
4)获得当前工作目录
os.getcwd()
5) 目录连接
os.path.join(dir1, file1)
6)匹配文件
glob.glob(“dir/test*.log”)
记录下,方便后续查找。
一、权限对于目录的意义
1、首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方。
2、r权限:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名,注意:仅仅指的是名字。
3、w权限:拥有此权限表示具有更改该目录结构列表的权限,总之,目录的w权限与该目录下的文件名或子目录名的变动有关,注意:指的是名字。具体如下:
1)在该目录下新建新的文件或子目录。
2)删除该目录下已经存在的文件或子目录(不论该文件或子目录的权限如何),注意:这点很重要,用户能否删除一个文件或目录,看的是该用户是否具有该文件或目录所在的目录的w权限。
3)将该目录下已经存在的文件或子目录进行重命名。
4)转移该目录内的文件或子目录的位置。
4、x权限:拥有目录的x权限表示用户可以进入该目录成为工作目录,能不能进入一个目录,只与该目录的x权限有关,如果用户对于某个目录不具有x权限,则无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。且如果用户对于某目录不具有x权限,则该用户不能查询该目录下的文件的内容,注意:指的是内容,如果有r 权限是可以查看该目录下的文件名列表或子目录列表的。所以要开放目录给任何人浏览时,应该至少要给与r及x权限。
二、权限对于文件的意义
1、也应该明白的是文件是实际含有数据的地方,所以r、w、x权限对文件来说是与其内容有关的。
2、r权限:用于此权限表示可以读取此文件的实际内容。
3、w权限:拥有此权限表示可以编辑、添加或者是修改该文件的内容。但是不包含删除该文件,因为由上面权限对于目录的意义得知删除文件或目录的条件是什么。
4、x权限:表示该文件具有可以被系统执行的权限。文件是否能被执行就是由该权限来决定的,跟文件名没有绝对的关系。
转自:http://blog.csdn.net/cdu09/article/details/10310103